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

Примеры программ с использованием оператора for

Программа DemoFor1 выводит на экран таблицу перевода из градусов по шкале Цельсия(С) в градусы по Фаренгейту(Р) для значений от 15°С до 30°С с шагом 1 градус. Перевод осуществляется по формуле: F = С*1.8+32.

program DemoFor1;

var

I: integer;

F: real;

begin

Writeln (' Температура ') ;

for I:= 15 to 30 do {Заголовок цикла с параметром}

begin {Начало тела цикла}

F:= I*1.8+32;

Writeln('no Цельсию= ',I,' по Фаренгейту= ', F:5:2)

end; {Конец тела цикла}

end.

В блоке описания переменных описаны параметр цикла I типа integer и переменная F — температура по Фаренгейту типа real. Переменная I, помимо функций управляющей переменной, является переменной, хранящей целочисленные значения температуры по шкале Цельсия. В начале выполнения программы на экран выводится надпись ' Температура ', а затем оператором повтора выводится таблица соотношения температуры в шкалах Цельсия и Фаренгейта. Печать таблицы выполняется оператором Writeln('По Цельсию= ',I,' по Фаренгейту= ' , F: 5:2).

Цикл выполняется следующим образом.

При первом обращении к оператору for вычисляются значения начального (15) конечного (30) параметров цикла, и управляющей переменной I присваивается начальное значение 15.

Затем циклически выполняется следующее:

  1. Проверяется условие I<=30.

2. Если оно соблюдается, то выполняется составной оператор в теле цикла, т.е. рассчитывается значение выражения I* 1.8+32, затем оно присваивается переменной F, и на экран выводится сообщение: 'По Цельсию= ', I, ' по Фаренгейту= ', F:5:2.

Если условие I<=30 не соблюдается, т. е. как только I станет > 30, оператор тела цикла не выполняется, а управление в программе передается за пределы оператора for, в нашем примере на оператор end. Программа завершает работу.

3. Значение параметра цикла I увеличивается на единицу, и управление передается в заголовок цикла for для проверки условия.

Далее цикл повторяется, начиная с пункта 1.

Вторым примером оператора цикла for может служить программа DemoFor2, которая печатает на экране символы американскою стандартного кода обмена информацией (ASCII) в порядке убывания кода.

program DemoFor2;

var

A: integer;

begin

for A:= 255 downto 0 do {Цикл с убыванием параметра}

Writeln('код символа = ',А, ' символ == ',Chr(A));

end.

В данной программе применяется цикл for с убыванием значения управляющей переменной А (используется указание downto - убывание).

Оператор повтора Repeat

Оператор повтора repeat имеет две особенности:

  1. Условие проверяется после очередного выполнения операторов тела цикла (очередной итерации) и таким образом гарантируется хотя бы однократное выполнение цикла.

  2. Критерием прекращения цикла является равенство выражения константе True.

За это цикл repeat часто называют циклом с постусловием, или циклом "ДО", так как он прекращает выполняться, как только значение выражения условия, записанного после слова until, равно True (истина).

Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until.

Формат записи:

repeat

<оператор;>

<оператор>

until <условие окончания цикла>;

Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит выход из цикла.

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

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