Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_учебник_3.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
937.47 Кб
Скачать

Шаг изменения параметра цикла:

1-й случай: TO - эквивалентен оператору: i:=succ(i);

2-й случай: DOWNTO - эквивалентен оператору: i:=pred(i).

Отсюда для целочисленного i получим:

1-й случай: TO - шаг равен 1,

2-й случай: DOWNTO - шаг равен -1.

Часть оператора без тела цикла (без s) называется заголовком цикла.

Цикл работает следующим образом. Сначала вычисляются и запоминаются начальное и конечное значения параметра цикла: a и b. Далее параметру цикла присваивается начальное значение: a. Затем значение параметра цикла сравнивается со значением b. Далее, пока параметр цикла меньше или равен конечному значению b (в первом варианте) или больше или равен конечному значению b (во втором варианте), выполняется тело цикла (после каждого выполнения тела цикла параметр цикла изменяется с указанным шагом (например, для целочисленных переменных, с шагом 1 (1-й случай) или -1 (2-й случай))); в противном случае происходит выход из цикла.

1-й случай: Если а>b, то оператор s не будет выполнен ни разу.

2-й случай: Если a<b, то оператор s не будет выполнен ни разу.

Изменить начальное и конечное значение параметра цикла в теле цикла невозможно, т.к. они вычисляются только один раз перед началом работы цикла. Хотя во многих учебниках по языку PASCAL написано, что изменять значение параметра цикла в теле цикла тоже нельзя, программисты на практике убедились, что на самом деле можно, но новое значение не должно превышать b (в первом случае) либо быть меньше b - (во втором).

В версии Turbo Pascal 7.0 для прекращения цикла можно использовать процедуру Break, которая передает управление следующему за этим циклом оператору, а также можно использовать процедуру Continue, которая прекращает текущую итерацию ближайшего охватывающего цикла и вызывает следующую итерацию.

Пример 1

Вывести на экран терминала числа от 0 до 9 в один столбик.

Решение

Так как числа должны выводиться в столбик, воспользуемся для их вывода процедурой WRITELN:

{ВЫВОД ЧИСЕЛ ОТ 0 ДО 9 В СТОЛБИК}

begin

Writeln(0);

Writeln(1);

Writeln(2);

Writeln(3);

Writeln(4);

Writeln(5);

Writeln(6);

Writeln(7);

Writeln(8);

Writeln(9)

end.

В этой задаче требовалось вывести десять чисел в столбик. Для этого мы воспользовались десятью процедурами WRITELN. А если бы от нас потребовали вывести пятьдесят чисел, например от 21 до 70? Неужели бы нам пришлось писать пятьдесят процедур WRITELN?! Конечно же нет, язык PASCAL дает нам возможность с помощью оператора цикла и всего лишь одной процедуры WRITELN вывести столько чисел, сколько нам надо. Как же это сделать? В нашей программе процедура вывода выполнялась десять раз, изменялась лишь выводимая информация. Давайте посмотрим, есть ли какая-то закономерность в этом изменении. Конечно, есть. Числа в скобках изменяются от 0 до 9 с шагом 1. То есть мы можем записать так:

процедуру WRITELN(i) надо выполнить 10 раз

при i, изменяющейся от 0 до 9 с шагом 1.

Перевернем немного эту фразу:

для i, изменяющейся от 0 до 9 с шагом 1,

выполнять процедуру WRITELN(i);

- и запишем ее на языке PASCAL:

FOR i:=0 TO 9 DO

WRITELN(i)

Запишем программу полностью. У нас появилась переменная i. Ее надо описать. Эта переменная целого типа.

{ВЫВОД ЧИСЕЛ ОТ 0 ДО 9 В СТОЛБИК}

var

i:integer;

begin

FOR i:=0 TO 9 DO

WRITELN(i)

end.

Как видите в приведенном выше примере, заголовок цикла записывается на одной строке, тело цикла – на другой со сдвигом на 2-3 символа.

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