Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ахмадулин Р.К. технологии программирования.doc
Скачиваний:
9
Добавлен:
10.11.2019
Размер:
615.94 Кб
Скачать

Вопросы для самопроверки

1. Опишите принцип работы условного оператора в короткой форме записи.

2. Опишите принцип работы условного оператора в длинной форме.

3. В каких случаях используется составной оператор?

4) Как записывается оператор Case на языке Паскаль?

5) Что означает запись на языке Паскаль Goto Next; ?

§8. Операторы цикла

Оператор цикла задает повторное выполнение определенных операторов. Различают циклы с постусловием, предусловием и со счетчиком.

Для изучения циклов воспользуемся следующим примером: необходимо посчитать сумму чисел от 1 до 100.

Циклы с заданным числом итераций

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

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

В цикле for всегда указывается:

  • имя переменной, в которой хранится число повторений цикла (счетчик, или управляющая переменная);

  • некоторое начальное значение для счетчика;

  • некоторое конечное значение для счетчика.

Записывается цикл for следующим образом:

FOR <счетчик> := <начальное значение> TO <конечное значение> DO <оператор>;

Пример: напечатать на экране 10 восклицательных знаков

for i:=1 to 10 do write(‘!’);

Счетчик всегда инициализируется начальным значением. На каждом шаге его значение увеличивается на единицу.

Оператор, который содержится в теле оператора for, выполняется фиксированное число раз: один раз для каждого целого значения в диапазоне между начальным и конечным.

Оператор цикла for выполняется до тех пор, пока счетчик не достигнет конечного значения.

Если начальное значение превышает конечное, то содержащийся в теле цикла for оператор не выполнятся ни разу.

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

Пример: что будет напечатано на экране после выполнения следующего оператора: for i:=0 to 9 do write(i);

Сначала переменной i присвоится начальное значение (0), после чего выполнится оператор, стоящий после do: на экране напечатается значение переменной i (т.е. 0).

Затем значение i увеличится на единицу и станет равным 1, после чего вновь выполнится оператор, следующий за do – рядом с ноликом напечатается 1. Таким образом, на экране уже напечатано 01.

Увеличение на единицу значения управляющей переменной i и выполнение оператора, стоящего после do, будет продолжаться до тех пор, пока не будет достигнуто конечное значение, т.е. 9. В итоге на экране будет напечатана последовательность 0123456789.

Пример: что будет напечатано на экране после выполнения следующих операторов:

s:=0;

for i:=1 to 3 do s:=s+i;

writeln(s);

Рассмотрим, как будут изменяться значения переменных на каждом шаге.

Шаг

i

s

Комментарий

1

0

1-ый оператор: записываем 0 в переменную s

2

1

0+1=1

В i записываем начальное значение, выполняем оператор, следующий за do: складываем текущие значения переменных s и i, результат помещаем в s.

3

1+1=2

1+2=3

Увеличиваем значение управляющей переменной и вновь выполняем операцию суммирования

4

2+1=3

3+3=6

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

Следующий оператор – печать на экране значения переменной s. Как видно из таблицы, в s хранится 6, следовательно, на экране после выполнения данных операторов напечатается цифра 6.

В операторе цикла for вместо to может использоваться ключевое слово downto. В этом случае счетчику присваивается убывающая последовательность от начального до конечного значения.

Пример: напечатать на экране 10 восклицательных знаков

for i:=10 downto 1 do write(‘!’);

Основным недостатком цикла for является то, что он позволяет увеличивать или уменьшать счетчик лишь на 1. К его основным преимуществам относятся краткость и возможность использования символьного и перечислимого типов в диапазоне значений.

Пример: напечатать все символы латинского алфавита.

var c: char;

for c:=’a’ to ‘z’ do writela(c);

Пример: вычислить сумму чисел от 1 до 100.

var i, sum: integer;

sum:=0;

for i:=1 to 100 do sum:=sum+i;

Пример: вычислить факториал 5.

var i, f: integer;

f:=1;

for i:=1 to 5 do f:=f*i;