Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Теоретическая работа е. Конструкции цикла в языке pascal

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

  • оператор цикла с параметром ( цикл FOR )

  • оператор цикла с предусловием ( цикл WHILE )

  • оператор цикла с постусловием ( цикл REPEAT )

  1. Оператор цикла с параметром

Общий вид оператора:

For <Имя>:=<Выр_1> to <Выр_2> do <Оператор>

For <Имя>:=<Выр_1> downto <Выр_2> do <Оператор>

Оператор цикла с параметром определяет:

  • диапазон изменения значений управляющей переменной и, одновременно, число повторений оператора, содержащего тело цикла;

  • направление изменения значения переменной ( возрастание или убывание);

  • собственно действия, выполняемые на каждом шаге (тело цикла).

Цикл действует таким образом.

Шаг 1. Сначала вычисляются и запоминаются начальное (<выр_1>) и конечное зна­чение (<выр_2>) параметра цикла.

Шаг 2. Параметру цикла <имя> присваивается начальное значение <выр_1>.

Шаг 3. Значение параметра цикла сравнивается со значением <выр_2>. Если параметр цикла больше конечного значения (в первом варианте оператора), или меньше конечного значения (во втором варианте оператора), то выполнение оператора цикла завершается и управление передается команде, следующей за оператором цикла.

Шаг 4. Выполняется тело цикла.

Шаг 5. После выполнения тела цикла происходит присваивание параметру цикла следующего значения (большего - в первом варианте записи, меньшего - во втором случае). Переход к шагу 3.

На использование управляющей переменной накладываются следующие ограничения:

1. Управляющая переменная должна быть описана в текущем блоке.

2. Управляющая переменная должна иметь дискретный тип.

3. Начальные и конечные значения диапазона должны иметь тип, совместимый с типом управляющей переменной.

4. В теле цикла запрещается явное изменение значения управляющей переменной ( например, оператором присваивания).

5. После завершения оператора цикла значение управляющей переменной становится неопределенным.

Рассмотрим примеры использования цикла FOR.

Предположим, что у нас есть следующее описание переменных:

Var

I:integer;

C:char;

B:boolean;

Col=(Red,Yellow,Green,Blue,White);

Тогда будут правильными следующие конструкции цикла:

а) for I:=-10 to 10 do writeln(I);

б) for I:=10 downto -10 do writeln(I);

в) for C:='a' to 'r' do writeln(C);

г) for b:= False to True do writeln(b);

д) for Col:= Red to White do writeln(ord(Col);

Ниже приводится пример программы, вычисляющей сумму квадратов первых N целых чисел.

program SUM;

uses crt;

var N,sum,I : integer;

begin { - начало тела главной программы}

clrscr; writeln;

writeln('<<< вычисления суммы квадратов первых N чисел >>>');

writeln; write('N = ? '); readln(N); sum:=0;

FOR I:=1 TO N DO sum:=sum+I;

writeln('сумма квадратов первых ',N,' чисел равна ',sum);

readln;

end.

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

program PIFAGOR;

uses Crt;

var I,J:integer;

begin { - начало тела главной программы}

clrscr; gotoXY(10,5); TextColor(Blue);

writeln('<<< ТАБЛИЦА ПИФАГОРА >>>');

writeln;

for I:=1 to 10 do { по вертикали }

begin

for J:=1 to 10 do { по горизонтали }

write((I*J):4);

writeln { переход на следующую горизонталь }

end;

readln

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]