ОПЕРАТОРЫ ПОВТОРА (ЦИКЛА)
ЦИКЛ-одна из важнейших алгоритмических структур. ЦИКЛ представляет собой последовательность операторов, которая выполняется неоднократно. ЦИКЛЫ позволяют записать повторяющиеся действия в компактной форме.
Read, Write – операторы присваивания, они выполняют какие-либо действия If, циклы – управляют ходом выполнения программ, поэтому циклы принадлежат к числу УПРАВЛЯЮЩИХ ОПЕРАТОРОВ.
В ТР различают 3 вида операторов цикла: 1.For - используется, когда известно заранее число повторений 2-3.While, Repeat – число повторений неизвестно, задано лишь условие его повторения или окончания
1. Цикл со счетчиком (цикл для) (заголовок цикла) for счетчик:=нач_знач to кон_знач do (управляющая переменная) downto возрастание убывание (тело begin {последовательность инструкций} цикла) end;
Счетчик конечного значения Инструкции между begin и end Счетчик:=счетчик+1 да нет Пример. 10 downto 1 For i:=1 to 10 do begin write(введите,i,элемент:); readln(x); end;
2. Цикл с предусловием (цикл пока -while) while условие do begin {последовательность инструкций} end; =true Выполняет пока условие ИСТИННО (true) Используется в том случае, если некоторую последовательность действий надо выполнять несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время работы:
Условие выполняется Инструкции между begin и end да нет Пример. i:=0; while i
3. Цикл с постусловием (цикл до тех пор, пока – repeat…until) repeat {инструкции} until условие; =false Инструкции выполняются до тех пор, пока условие ЛОЖНО (false) Выполняется всегда 1 раз
Условие НЕ выполняется Инструкции между repeat и until да нет Пример. i:=1; repeat write(введите,i,элемент:); readln(x); i:=i+1; until i>10;
Составить программу нахождения суммы ряда, используя три вида операторов цикла: 1+1/2+1/3+1/4+…1/n, n Z э
Program summa; Uses crt; Var n,i:integer; sum:real; Begin Clrscr; Repeat Write(введите n=); Readln(n); Until n>0; Sum:=0; For i:=1 to n do sum:=sum+1/i; Writeln(sum=,sum); Readln; end. Program summa; Uses crt; Var n,i:integer; sum:real; Begin Clrscr; Repeat Write(введите n=); Readln(n); Until n>0; Sum:=0;i:=1; while i:0; Sum:=0;i:=1; repeat sum:=sum+1/i; i:=i+1; until i>n; Writeln(sum=,sum); Readln; end.
тест 1.Сколько раз будут выполнены инструкции между begin и end? а) for i:=j to j+1 do Begin … End; б) k:=0; For i:=2 downto k do Begin … End;
тест 2. Результат работы программы? n:=0; While n
тест 3.Результат работы программы? n:=0; repeat writeln(,n); n:=n+1; until n>5;
ОТВЕТЫ: 1.а) 2; б) 3; 2.1_1 2_4 3_9 4_16 5_25 6_