В операторе FOR обязательно указываются параметры:
· Имя переменной – в которой хранится число повторений цикла (счётчик цикла – порядковая перечисляемая переменная).
· Начальное значение илиВыражение 1 – начальное значение для переменной цикла (счётчика), которое она получает при первом выполнении цикла.
· Конечное значениеилиВыражение 2 – некоторое конечное значение (для переменной цикла) достигнув которое повторение цикла прекращается (условие завершение цикла).
В качестве переменной цикла должна выступать порядковая (перечисляемая) переменная типа INTEGER. Тип REAL не допустим.
Пример: FOR j := 1TO15DO k:=k+1;
В начале выполнения цикла значение переменной счётчик (i) устанавливается равным начальному значению. При каждом проходе цикла переменная счётчик увеличивается на величину шага. Если она достигает величины, большей конечного значения, то цикл завершается и выполняется следующая за ним команда.
Выражение 1 и выражение 2 – произвольные выражения порядкового (целого) типа.
Пример: FOR j := a+b TO 2*S DO k:=k+1 ;
Вычисляется выражение1 и переменной цикла i присваивается его значение. Затем вычисляется выражение 2 и сравнивается с i. Если i> выражения 2, то оператор FOR завершает работу, так не чего и не сделав.
В противном случае выполняется оператор (составной оператор) стоящий после DO. После выполнения этого оператора значение i увеличивается на единицу и снова сравнивается с выражением 2.
Если i > выражения 2 то оператор FOR завершает работу, иначе снова выполняется оператор стоящий после DO, снова значение i увеличивается на единицу и так далее.
ПослеDOможет стоять только один оператор, по этому при необходимости используют составной оператор, заключённый в операторные скобкиBEGINиEND.
Произвольные значения, хранящиеся изначально в переменных должны быть ”уничтожены” – обнулены. Поэтому мы присваиваем переменной обозначающей сумму значение ноль (summa:=0), а переменной обозначающей произведение значение единицы (proizvidenie:=1). Иначе в операции сложения при выполнении цикла будет участвовать произвольное значение переменной summa (proizvedenie ) т.е. любое произвольное число выбранное ПАСКАЛЕМ, а в повторном выполнении значение предыдущего сеанса работы.
Пример:
Написать 20 раз слово ИНФОРМАТИКА.
PROGRAM kopirovanie ;
VAR i : INTEGER ;
BEGIN
FOR i:= 1 TO 20 DO
WRITELN(‘ИНФОРМАТИКА’);
END.
Пример:
Найти сумму натуральных чисел от 1 до 20.
PROGRAM summa_schisel ;
VAR i , summa : INTEGER ;
BEGIN
summa =0;
FOR i:= 1 TO 20 DO
summa:= summa + i;
WRITELN(‘сумма 20 чисел равна’, summa);
END.
Циклы с пред и пост условием:
В ситуации, когда количество повторений цикла заранее не определёно, а определяется по ходу реализации циклического процесса, используются операторы с постусловием или предусловием.
UNTIL (ан’тил) - до тех пор, пока не станет истинным условие.
Принцип работы оператора REPEAT - повторяй выполнение операторов, стоящих между словамиREPEATиUNTILдо тех пор, пока не станет истинным условие.
С начала компьютер по очереди выполняет операторы, стоящие после словаREPEAT, пока не дойдёт до словаUNTIL. После чего проверяет истинность условия, стоящего послеUNTIL. Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и так далее.
Если условие оказывается истинным, то работа оператораREPEATпрекращается и компьютер переходит к выполнению следующего по порядку оператора.
Таким образом, инструкции, находящиеся междуREPEATиUNTIL,выполняется до тех пор, покаусловие ложно (значение выражения равно FALSE).
Обратите внимание:
• Инструкция цикла, междуREPEATиUNTIL, всегда будут выполнены хотя бы один раз.
• Для того, чтобы цикл завершился, необходимо, чтобы инструкции цикла, находящиеся междуREPEATиUNTIL, изменяли значения переменных, входящих в выражениеусловие.