ЦИКЛИЧЕСКИЕ алгоритмы и операторы циклов
Различают три способа организации циклов: 4 цикл с предусловием; цикл с предусловием 4 цикл с постусловием; цикл с постусловием; 4 цикл со счетчиком (или с параметром). цикл со счетчиком (или с параметром).
Цикл с предусловием Этот способ организации циклов используют в тех случаях, когда заранее неизвестно количество повторений действий цикла и существует возможность, что цикл не будет выполнен ни разу.
... Действие n Действие m Действие 1 Условие повторения да-нет Цикл с предусловием (оформление в блок-схеме )
Цикл с предусловием (оформление на Паскале) WHILE логическое выражение DO оператор; WHILE логическое выражение DO BEGIN оператор 1; …… оператор n; END; WHILE - пока, DO - выполнять
Пояснения: Если логическое выражение истинно, то тело цикла выполняется. В теле цикла обязательно должен быть оператор, который влияет на значение логического выражения. Цикл не будет выполнен ни разу, если логическое выражение при первом обращении к циклу ложно
Сколько раз будет выполнен цикл. Что появится на экране в результате выполнения этого фрагмента I фрагмент Z:= 8; WHILE Z>0 DO Z:=Z-3; WRITELN(Z); II фрагмент M:= -5; WHILE M<0 DO M:=M+2; WRITELN(M); III фрагмент T:= 6; WHILE T<>0 DO BEGIN WRITELN(T); T:=T-4; END; IV фрагмент R:= -6; WHILE R>0 DO R:=R+3; WRITELN(R);
Примеры задач Пример 1: {Вычисление суммы нечётных чисел в интервале } Program DemoWhile ; var I, sum : integer ; begin sum : = 0; I : = 1 ; while (I<11) do begin sum : = sum + I ; I : = I + 2 ; end ; write ('Сумма нечётных чисел равна ', sum : 3) end.
Этот способ организации циклов используют в тех случаях, когда заранее известно что 1 раз цикл должен быть выполнен обязательно, но количество дальнейших итераций неизвестно. Цикл с постусловием
Цикл с постусловием (оформление в блок-схеме)... Действие n Действие 1 Условие завершения да-нет Действие m
Цикл с постусловием (оформление на Паскале) REPEAT оператор 1; …… оператор n; UNTIL логическое выражение ; REPEAT - повторять, UNTIL - до Тело цикла первый раз выполняется безусловно, далее будет повторяться пока логическое выражение ложно (т.е ДО логическое выражение =TRUE)
Сколько раз будет выполнен цикл. Что появится на экране в результате выполнения этого фрагмента I фрагмент Z:= 8; REPEAT Z:=Z-3; UNTIL Z<0; WRITELN(Z); II фрагмент M:= -5; REPEAT M:=M+2; WRITELN(M); UNTIL M<0; III фрагмент T:= 6; REPEAT T:=T-4; WRITELN(T); UNTIL T=0 IV фрагмент R:= -6; REPEAT R:=R+3; UNTIL R>0; WRITELN(R);
Цикл со счетчиком Этот способ организации циклов используют в тех случаях, когда заранее известно количество выполнений цикла.
Цикл со счетчиком (оформление в блок-схеме)... Действие n Действие 1 I=A,В кц I... Действие 1 Действие n I=A,В
Цикл со счетчиком (оформление на Паскале) FOR I:=A TO B DO оператор; FOR I:=A TO B DO BEGIN оператор 1; …… оператор n; END; For - для, to - до, do - выполнять
FOR I:=A DOWNTO B DO оператор; FOR I:=A DOWNTO B DO BEGIN оператор 1; …… оператор n; END; Здесь I-счетчик(параметр) цикла-переменная простого типа; А, В - начальное и конечное значения счетчика цикла- могут быть представлены константами, переменными или выражениями простого типа(кроме Real); downto - назад до
Пояснения: Сначала вычисляются значение А и В, если А не перешагнуло В, то выполняется тело цикла, далее счетчик цикла изменяет свое значение. Если в заголовке цикла используется ключевое слово ТО, тогда перед каждой следующей итерацией счетчик цикла автоматически увеличивается на 1; если DOWNTO - тогда уменьшается на 1. TO A A+1... B-1 B DOWNTO B B+1... A-1 A
Сколько раз будет выполнен цикл. Что появится на экране в результате выполнения этого фрагмента I фрагмент for Z:= 1 to 10 do WRITELN(Z); II фрагмент for M:= 5 downto 1do WRITELN(M); III фрагмент K:=0; for T:= 2 downto -2 do K:=K+3; WRITELN(K); IV фрагмент R:= -6; for I:= -2 to 0 do begin WRITELN(R); R:=R+3; end;
Задачи Решить с использование цикла типа «пока» 1) Про спортсмена; 2) «Богатый дедушка»; 3) алгоритм Евклида (поиск НОД двух натуральных чисел); 4) для заданного натурального N найти количество цифр в нем; 5) найти сумму цифр числа; 6) n-простое? Решить с использование цикла типа «для каждого» из «зеленого» 1)3.2.7; 2) Найти n!; 3)таблицу значений х, y для функции y=sin x, x=0,10,…90; 4)3.2.5; 5)3.2.41, Решить с использование цикла типа «до»: 1) Поиск номера минимального в непустой последовательности, заканчивающейся нулем; 2) для заданных m и n найти такие p и q, что n/m=p/q(используйте алгоритм для определения НОД)
Пример 2: Вычисление числа "Пи"
Program PI ; var p : real ; {вычисляемое значение Пи} e: real ; {точность вычисления} n,z : integer ; {знаменатель члена ряда} elem : real ; {значение члена ряда}; k:byte; begin n:=1; p : = 0 ; z : = 1 ; elem : = 1 ; k:=1{начальные значение} write ('Задайте точность вычисления ПИ ->') ; readln (e) ; while elem >=e do begin p : = p +k*elem; z : = z + 2 ; elem : = 1/ z; k := - k; n:=n+1; end; p : = p*4 ; writeln ('Значение Пи с точностью', t : 9 : 6, равно ', p : 9 : 6) ; writeln ('Просуммировано ', n, членов ряда.') ; readln ; end. Выполнить