Jump to content

Опять Паскаль...


Recommended Posts

С клавы пользователь вводит последоватьельность чисел, заканчивающуюся вводом 0. Найти первый положительный элемент, который будет больше суммы трех предыдущих. Если предыдущих нет, то они равны нулю. как тут все это делать???? Циклами или чем??

Link to comment
Share on other sites

Бумер:

По условию ввод любого положительного числа приводит к завершению задачи - любое положительное число больше суммы трех нулей. Так что имеет смысл вводить только отрицательные числа, ввод любого положительного числа по условию является решением.

Хотя по здравому смыслу проверять условие надо только после того, как наберется три введенных числа, тогда можно будет работать и с положительными числами. Но для начала - программа, работающая точно по условию:

program a1;var k,k1,k2,k3,s:Real;begink1:=0; k2:=0; k3:=0;repeats:=k1+k2+k3;ReadLn (k);if k=0 then WriteLn ('Zavershenie vvoda poljzovatelem')else begin  if k>s thenbegin WriteLn ('Otvet poluchen: ',k:9:2); k:=0;end  elsebegin k1:=k2; k2:=k3; k3:=k;end; end;until k=0;Writeln ('Vipolnenie zadachi zakoncheno. Dlja vozvrata v sistemu nazhmite klavishu Enter');ReadLn;end.

А чтобы имел смысл ввод и положительных чисел, то есть чтобы проверка срабатывала только начиная с четвертого введенного числа, достаточно просто изменить оператор k3:=0 на k3:=1e38

Edited by Тролль
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...