Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль-конспект ИНФОРМАТИКА.doc
Скачиваний:
59
Добавлен:
09.04.2015
Размер:
639.49 Кб
Скачать

1.8. Организация циклов

Большинство задач, решаемых на ЭВМ, невозможно представить в виде последовательности простых вычислений; часто приходится организовывать повторяемость одних и тех же вычислений.

1.8.1. Использование операторов условного и безусловного перехода

1) Искусственно вводим счетчик числа шагов цикла

2) Проверяем условие окончания циклических расчетов

3) Если надо продолжить, увеличиваем значение счетчика

Задача.Вычислить таблицу квадратов и корней целых чисел от 1 до 100.

Здесь счетчиком чисел может служить само число. Дадим ему имя N.

Использовать операторы условного перехода в программе крайне не желательно!

1.8.2. Цикл с параметром

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

Общий вид оператора цикла с параметром:

А) Если начальное значение параметра меньше конечного, то используется форма вида:

FOR I: = M TO N DO оператор;

Б) Если начальное значение параметра цикла больше конечного, то используется форма вида:

FOR I: = N DOWNTO M DO оператор;

MиN- выражения задающие начальное и конечное значения

параметра I,

А - простой или составной оператор.

Если после слова DOнеобходимо записать несколько операторов, то следует воспользоваться составным операторомBEGINоператор1;

оператор2;

оператор3

END;

Параметр цикла не может быть вещественным(действительным), а только целым или другим типом, который можно пронумеровать и сосчитать. Шаг всегда равен 1 или –1. Задать другой шаг нельзя!

Пример(тот же).

For n :=1 to 100 do

Writeln(‘n=’,n,’sqr(n)=’,sqr(n),’sqrt(n)=’,sqrt(n));

С помощью этого цикла процедура WRITELNбудет последовательно выполняться для следующих значений переменнойN: 1,2,…,100.

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

Ограничения.

  1. Значения параметра цикла, начального и конечного значений параметра цикла изменять внутри цикла нельзя.

  2. Войти в цикл можно только через его начало, а выйти- либо при исчерпании значений параметра цикла, либо при выполнении оператора перехода GOTO по метке, расположенной вне данного цикла. При нормальном выходе из цикла значение его параметра равно конечному значению.

Итак, оператор цикла с параметром позволяет осуществить последовательный перебор значений параметра, но с приращением равным 1. В том случае, если шаг просмотра отличен от единицы или заранее не известно количество повторений тела цикла, необходимо применять один из двух других видов операторов цикла: с предусловием или с постусловием.

1.8.3. Цикл с предусловием - цикл while

Пример. Составить таблицу квадратов и квадратных корней для чисел от 1 до 100.

N:=1 ;

While n<=100 do

Begin

Writeln (‘n=’,n,’sqr(n)’,sqr(n),’sqrt(n)’,sqrt(n));

N: =N+1

End;

В общем случае данный оператор цикла записывается так:

WhileусловиеDOоператор;

Правило его выполнения следующее: оператор выполняется до тех пор, пока остается истинным условие цикла. Как только значение условия становится ложным, цикл прекращает выполняться. Если значение условия ложно перед первым выполнением цикла, то он не выполняется ни разу. Обратите внимание на то, что после слова DО может стоять только один оператор, поэтому чаще всего после словаDOстоит составной оператор.

Приведенный в примере оператор WHILEработает так. Первоначальное значение переменнойNUMBERравно 1. Оно задается оператором присваивания. Затем проверяется условие, которое в данном случае имеет вид:N<=100. Знак <= означает “ меньше или равно”. Естественно, что условие 1<= 100 истинно, поэтому выполняется оператор стоящий после словаDO. Этот оператор называется телом цикла. Он вычисляет и выдает на печать значения квадрата и квадратного корня числа 1, а также увеличивает значение переменной на единицу. Теперь ее значение равно двум, условие цикла остается истинным, и цикл выполняется еще раз. Последний раз цикл будет выполняться для значенияn=100. Условие 100<=100 истинно, и цикл выполняется. Внутри цикла происходит очередное увеличение переменнойNна 1, и ее значение становится равным 101. Очередная проверка условия цикла дает значение условия ложное, и выполнение цикла прекратится. Таким образом, данный цикл выдает значения квадратов и квадратных корней для чисел от 1 до 100 включительно.

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