Цикл – это команда исполнителю многократно повторить указанную последовательность действий.
Структурная схема цикла ПОКА. ? ОПЕРАТОР ДА НЕТ + -
На структурной схеме выход из ромба «+»(или ДА) означает выполнение условия цикла, «-» (или НЕТ) невыполнение. Цикл ПОКА не выполнится ни разу, если условие при входе в структуру оказалось ложным.
WHILE DO begin ; end; Примечание: Если между begin и end находится только одна инструкция, то слова begin и end можно не писать. Инструкция цикла ПОКА имеет вид:
где условие - выражение логического типа, определяющее условие выполнения цикла - операторов, находящихся находящихся между словами begin и end. Инструкция WHILE выполняется следующим образом: оператор(ы) цикла повторяется(ются) до тех пор, пока выполняется условие(т.е. логическое выражение определяющее условие true). Как только условие перестает выполняться цикл завершен.
1) y:=10 while y
Следующая программа составляет таблицу значений функции y = sin x, и выводит ее на экран.
Program Sinus; var x,y:real; begin x:=0; writeln(x:10,sin x:10); while x< = 3.14 do begin y:=sin(x); writeln(x:10,,y:7:5); end; readln end.
Структурная схема цикла ДО. оператор ? ДА НЕТ - +
Общий вид инструкции цикла ДО: REPEAT UNTIL ; Примечание: Особенность цикла ДО в том, что между словами repeat и until можно записать любое количество операторов без использования операторных скобок (слова begin и end).
где условие - логическое выражение определяющее условие завершения цикла. Проверка условия в цикле ДО осуществляется после выполнения оператора(ов).
Примеры: 1) x:=2 Repeat x:=x+1; Until x=10; 2) s:=0; (введены 4, 5, 2, 0) Repeat read(n); if n0 then s:=s+n; Until n=0;
Следующая программа вычисляет сумму положительных чисел, введенных с клавиатуры.
Program Summa; var a:integer; {число, введенное с клавиатуры} s:integer; { сумма введенных чисел } begin s:=0; repeat write(введите число); readln(a); if a>0 then s:=s+a; until a
Program Evklid; Var a,b:integer; Begin Write (введите 2 числа); Read(a,b); While ab do If a>b then a:=a-b else b:=b-a; Write (НОД=,a); Readln; Readln End. Program Evklid; Var a,b:integer; Begin Write (введите 2 числа); Read(a,b); While ab do If a>b then a:=a-b else b:=b-a; Write (НОД=,a); Readln; Readln End.
Program Evklid; Var a,b:integer; Begin Write (введите 2 числа); Read(a,b); Repeat If a>b then a:=a-b else b:=b-a; Until a=b; Write (НОД=,a); Readln; Readln End. Program Evklid; Var a,b:integer; Begin Write (введите 2 числа); Read(a,b); Repeat If a>b then a:=a-b else b:=b-a; Until a=b; Write (НОД=,a); Readln; Readln End.