Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм. |
---|
Управляющие операторы языка |
---|
Задание. Разработать программу, которая должна вводить и суммировать 10 целых чисел, не превышающих 50. При вводе отрицательного числа она должна выдавать предупреждение, игнорировать это число и ожидать ввода правильного значения. В данном случае, нельзя использовать счетный цикл, так как количество повторений заранее неизвестно, поэтому используем итерационный цикл, конкретно - цикл - пока. Схема алгоритма определения суммы 10 чисел, не превышающих 50. Данный алгоритм может быть реализован с использованием оператора goto, процедуры continue или оператора ветвления if. Последний вариант является структурным. Рассмотрим все варианты: 1. Варинт с использованием оператора goto: Program ex; Var i, s, a:integer; Label cycl; Begin i:=1; s:=0; while i<=10 do begin Read (a); if a>50 then begin WriteLn ('Число не должно превышать 50'); goto cycl; {передача управления на конец цикла} end; s:=s+a; {операторы, которые необходимо обойти} i:=i+1; cycl:end; WriteLn (s); End. Вариант с использованием процедуры continue: Program ex; Uses crt; Var i, s, a:integer; Begin i:=1; s:=0; while i<=10 do begin Read (a); if a>50 then Begin WriteLn ('Число не должно превышать 50'); continue; {передача управления на следующую операцию} end; s:=s+a; i:=i+a; end; writeLn (s0; End. 3. Структурный вариант: Program ex Uses crt; Var i, s, a:integer; Begin i:=1; s:=0; while i<=10 do begin Read (a); if a>50 then WriteLn ('Число не должно превышать 50'); else begin s:=s+a; i:=i+1; end; end; WriteLn (s); End. Структурная реализация алгоритма в данном случае является самой простой. Использование вариантов с оператором goto и процедурой continue нецелесообразно. Применение continue в аналогичных ситуациях может быть оправдано только при большом количестве пропускаемых операторов. |