Перейти к содержанию
СофтФорум - всё о компьютерах и не только

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


Рекомендуемые сообщения

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

Ссылка на комментарий
Поделиться на другие сайты

Бумер:

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

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

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

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...