Повторение действий в turbo pascal. Циклы
Типы циклов цикл с предусловием цикл с предусловием цикл с постусловием цикл с постусловием цикл с параметром цикл с параметром
Основные понятия Тело цикла – Тело цикла – повторяющиеся действия Итерация – Итерация – один проход цикла Начальные установки – Начальные установки – определение значений переменных, которые используются в циклах с предусловием и с постусловием
Цикл с предусловием начальные установки условие тело цикла + while do ; Условие – простое или составное логическое выражение Формат:
Примеры a : = 3; while a < 4 do a: = sqr(a); a : = 3; while a < 4 do a: = sqr(a); a : = 10; while true do a : = a*10; a : = 10; while true do a : = a*10; a : = 10; while false do a : = a*10; a : = 10; while false do a : = a*10;
Задача Преобразовать значение угла в градусах к стандартному диапазону ±180 0 путем исключения полных оборотов окружности (±360 0 ).
Решение var a : integer; beginreadln(a); while abs(a) > 180 do while abs(a) > 180 do if a > 0 then dec(a,360) else inc(a,360); writeln(a); writeln(a); end. end.
Для n>=0, не применяя формулы, вычислить сумму чисел от 1 до n i:=0; S:=0; Readln(n); While x
C клавиатуры вводятся натуральные числа. Последовательность этих чисел заканчивается нулем. Найти их сумму. Readln(a); S:=0; While a0 do Begin S:=s+a; End;
Цикл с постусловием repeat Until ; Формат: тело цикла начальные установки условие +
Примеры x : = 4; repeat writeln (x); until true; x : = 4; repeat writeln (x); until false;
Задача Найти методом подбора целочисленное решение Диофантова уравнения 5х-3у=1.
Решение var x, y : integer; begin x : = 1; y : = 1; repeat if 5*x – 3*y >1 then inc(y) else inc(x); until 5*x – 3*y =1; writeln (x:5, y:5); end.
Цикл с параметром Этот оператор применяется, если требуется выполнить тело цикла заранее заданное количество раз. Параметр - переменная порядкового типа - на каждой итерации увеличивается или уменьшается на одно значение.
Формат оператора for : = for : = to do ; ;S:=0; for i:=1 to 20 do for i:=1 to 20 dos:=s+i;
сч : = выр.1 сч.
сч : = выр.1 сч.
Формат оператора for : = downto do ; ; S:=0; for i:=20 downto 1 do s:=s+i;
сч : = выр.1 сч.>=выр.2 тело цикла + сч. : = сч.-1 for i:=20 downto 1 do s:=s+i;
Задача Найти нечетные и кратные 3 числа в диапазоне от 30 до 60. Распечатать их в порядке убывания.
Решение var i : byte; begin for i := 60 downto 30 do if ( i mod 3 =0) and ( odd i ) then writeln ( i ); end.
Замечания Если тело цикла содержит несколько действий, то эти действия заключаются в операторные скобки begin … end. Если тело цикла содержит несколько действий, то эти действия заключаются в операторные скобки begin … end. В теле цикла запрещается явное преобразование счетчика. В теле цикла запрещается явное преобразование счетчика. После нормального завершения цикла значение счетчика не определено. После нормального завершения цикла значение счетчика не определено.
Замечания Для аварийного выхода из циклов или внеочередного перехода к следующей итерации существуют две процедуры модуля SYSTEM: BREAK - прекращает выполнение тела цикла и переходит к оператору, следующему за циклом; CONTINUE – передает управление на условие продолжения или завершения тела цикла, так что начинается следующая итерация. Для аварийного выхода из циклов или внеочередного перехода к следующей итерации существуют две процедуры модуля SYSTEM: BREAK - прекращает выполнение тела цикла и переходит к оператору, следующему за циклом; CONTINUE – передает управление на условие продолжения или завершения тела цикла, так что начинается следующая итерация.
Общие рекомендации Используйте цикл с параметром, когда знаете, сколько раз должно выполняться тело цикла; Используйте цикл с параметром, когда знаете, сколько раз должно выполняться тело цикла; Используйте цикл с постусловием, если необходимо, чтобы тело цикла выполнилось хотя бы один раз; Используйте цикл с постусловием, если необходимо, чтобы тело цикла выполнилось хотя бы один раз; Используйте цикл с предусловием, если хотите, чтобы проверка была произведена прежде, чем выполнится тело цикла. Используйте цикл с предусловием, если хотите, чтобы проверка была произведена прежде, чем выполнится тело цикла.