Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 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 в аналогичных ситуациях может быть оправдано только при большом количестве пропускаемых операторов.

Hosted by uCoz