- •Лабораторная работа № 1 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 2 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 3 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Лабораторная работа № 4 Цель работы
- •Теоретическая часть
- •Варианты заданий
- •Содержание и оформление отчета
- •Литература
- •Паскаль: операторы ветвления, циклы, массивы, строки
Лабораторная работа № 2 Цель работы
Изучение работы с операторами цикла.
Теоретическая часть
Оператор цикла REPEAT
Организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Выход из цикла при истинности логического выражения.
repeat
<инструкция1>;
<инструкция2>;
…
<инструкцияN>;
until S;
где <инструкцияi> - операторы, в совокупности представляющие тело цикла;
S – логическое выражение, истинность которого проверяется в конце каждой итерации. Тело цикла выполняется до тех пор, пока не выполнится условие S. Поэтому тело цикла выполнится хотя бы один раз.
Цикл REPEAT относится к циклам с постусловием (см. пример 3).
Пример 3:
var X : Integer; begin repeat write('Введите целое отрицательное число:'); readln(X); until X<0; end. |
Программа будет выполняться до тех пор, пока число X не будет введено отрицательным.
Оператор цикла WHILE
Организует выполнение одного оператора с заранее неизвестным количеством итераций. Выход из цикла осуществляется при ложности логического выражения.
while S do
<инструкция>;
Здесь:
S – логическое выражение, истинность которого проверяется перед каждой итерацией. Такие циклы называются циклами с предусловием. Пока условие S истинно, тело цикла выполняется (см. пример 4).
<инструкция> - единственный выполняемый оператор цикла, который может быть составным.
Пример 4:
var X : Real; begin X := 20; while X > 2 do X := X/2; writeln('X=',X); end. |
В приведенном примере тело цикла состоит из единственного оператора, осуществляющего уменьшение числа в 2 раза.
Оператор цикла FOR
Организует выполнение одного оператора с заранее заданным числом итераций. Используется в двух вариантах:
for i:=Start to Finish do
<инструкция>;
for i:=Start downto Finish do
<инструкция>;
Здесь:
i – параметр цикла (обычно называется счетчиком цикла), являющийся переменной порядкового типа;
Start – начальное значение параметра цикла;
Finish – конечное значение параметра цикла;
В первом варианте переменная i последовательно принимает значения от Start до Finish с шагом 1, во втором - с шагом -1 (см. пример 5).
Пример 5:
var i : Char; begin for i := 'Z' downto 'A' do write(i); end. |
В примере в качестве счетчика цикла использована переменная символьного типа. Результатом работы программы является вывод букв латинского алфавита в обратном порядке.
Стандартные процедуры Break и Continue
Break – досрочный выход из цикла, не дожидаясь выполнения условия выхода.
Continue – позволяет начать новую итерацию цикла, даже если предыдущая не завершена.
Пример 6:
var i : Integer; begin for i := 1 to 5 do if i>3 then break else write(i,' '); end. |
В примере 6 как только i станет равным 4, программа выйдет из цикла. Результат работы программы:
1 2 3 |
Пример 7:
var i : Integer; begin for i := 1 to 5 do begin if i<3 then continue; write(i, ' '); end; end. |
В примере 7 до тех пор, пока i<3 не будет выполняться write. Результат работы программы:
3 4 5 |