Тема.Операторы повторения
Цикл - главное средство заставить компьютер много раз сделать одно и то же действие.
Счетный оператор цикла FOR (для - цикл по параметру).
Вид команды в виде блок-схемы следующий:
Общий вид конструкции следующий:
Первый вариант.
FOR <пар_цикла> := <нач_знач> TO <кон_знач> DO <оператор>;.
PS!!! ( <нач_знач> меньше <кон_знач>)
Выполнение оператора FOR в первом варианте происходит по следующей схеме:
1. Вычисляются значения <нач_знач> и <кон_знач>. Это делается только один раз при входе в цикл.
2. Параметру цикла (<пар_цикл>) присваивается значение <нач_знач>.
3. Значение параметра цикла сравнивается со значение <кон_знач>. Если параметр цикла меньше или равен этому значению, то выполняется тело цикла, в противном случае выполнение цикла заканчивается.
4. Значение параметра изменяется на следующее значение в его типе (для целых - увеличивается на единицу); происходит возврат к пункту 3.
Второй вариант.
FOR <пар_цикла> := <нач_знач> DOWNTO <кон_знач> DO <оператор>;.
PS!!! ( <нач_знач> больше <кон_знач>)
Слово DOWNTO буквально можно перевести как "вниз до". В таком случае параметр цикла изменяется по убыванию.
Пример 7. Составить программу вычисления факториала целого положительного числа.
|
program pr7_factorial_for; var i: word; n: integer; factorial: longint; begin writeln('введите число N'); readln(n); factorial:=1; for i:=1 to n do begin writeln('i= ',i,' ',factorial,' * ',i,' = ',factorial*i); factorial:=factorial*i; end; writeln('факториал числа N=',factorial ); end. |
Оператор цикла WHILE (с предпроверкой условия)
Выполнение серии команд (тела цикла) повторяется, пока условие цикла истинно. Когда условие становится ложным, цикл заканчивает выполнение.
Общий вид команды в блок-схеме следующий:
На языке Паскаль структура имеет следующий вид:
WHILE <условие> DO <оператор>;, где
<условие> - произвольное выражение логического типа,
<оператор> - произвольный оператор языка Паскаль.
Пример 8. Задачу примера 7 решить с помощью оператора While...Do.
program pr8_factorial_while; var i: word; n: integer; factorial: longint; begin writeln('введите число N'); readln(n); factorial:=1; i:=0; while i<n do begin i := i + 1; writeln('i= ',i,' ',factorial,' * ',i,' = ',factorial*i); factorial:=factorial*i; end; writeln('факториал числа N=',factorial ); end. |
Оператор цикла REPEAT...UNTIL (с постпроверкой условия)
В цикле с постпроверкой условия используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу.
Общий вид команды в блок-схеме следующий:
На языке Паскаль структура имеет следующий вид:
REPEAT <оператор> UNTIL <условие> , где
- <оператор> - произвольный оператор языка Паскаль
- <условие> - произвольное выражение логического типа.
Пример 9. Составить программу. которая запрашивает пароль (например, четырехзначное число) до тех пор, пока пароль введен правильно, затем появляется текст: "Пароль введен верно".
program pr9_repeat; var p: string; const parol = '1234'; begin repeat begin writeln('введите пароль'); read(p); readln; end until p = parol; writeln('Пароль введен верно'); readln; end. |