1. Опишите принцип работы условного оператора в короткой форме записи.
2. Опишите принцип работы условного оператора в длинной форме.
3. В каких случаях используется составной оператор?
4) Как записывается оператор Case на языке Паскаль?
5) Что означает запись на языке Паскаль Goto Next; ?
Оператор цикла задает повторное выполнение определенных операторов. Различают циклы с постусловием, предусловием и со счетчиком.
Для изучения циклов воспользуемся следующим примером: необходимо посчитать сумму чисел от 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. К его основным преимуществам относятся краткость и возможность использования символьного и перечислимого типов в диапазоне значений.
Пример: напечатать все символы латинского алфавита.