FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.
Email: Нажмите что бы посмотреть
Для всех операторов цикла характерна следующая особенность:
Если этого не предусмотреть, то циклические вычисления будут повторяться бесконечно. В этом случае говорят, что произошло «зацикливание» выполнения программы.
Оператор цикла имеет вид:
FOR I:=m1 TO m2 DO
Begin
Операторы циклической части программы;
End;
m1 FOR - для I – параметр цикла, Возможен следующий вид: m1>m2
TO - до
DO - выполнить
m1,m2 – начальное и конечное значения параметра цикла
FOR I:=m1 DOWNTO m2 DO
Begin
Операторы циклической части программы;
End;
i - параметр цикла, выполняет роль счетчика;
a1 - начальное значение счетчика;
a2 - конечное значение счетчика.
Назад
i
x
s
1
1≤ 4
?
7
7
2
2 ≤ 4
20
13
3
3 ≤ 4
41
61
4
4 ≤ 4
8
69
5
5 ≤ 4
Условие выполнения тела цикла: i ≥ a1.
Тело цикла будет выполнено a2 – a1 + 1 раз.
Переменная-счетчик
должна быть целого
типа;
Начальное значение
суммы должно быть
равно 0.
Не рекомендуется
в теле цикла
изменять значение
переменной-счетчика.
Вопросы:
Верно:
11 раз
0 раз
1 раз
0 раз
3 раза
Какого типа должны быть параметр цикла, его начальное и конечное значения?
Можно ли изменять конечное значение
переменной-счетчика в теле цикла?
Что должно появиться на экране в результате выполнения следующего фрагмента программы?
Какой цикл можно назвать внешним,
а какой – внутренним?
a = 1
a := 1;
for i:=1 downto 3 do a := a+1;
a = 1
a := 1;
for i:=3 downto 1 do a := a+1;
a = 4
WHILE - пока
DO - выполнить
Оператор выполняется до тех пор пока логическое выражение (условие) имеет значение истина, прекращает выполняться, если логическое выражение принимает значение ложь.
Чтобы не было
зацикливания, переменные,
входящие в условие, должны
изменяться в теле цикла.
n
m
k
5
3
7
2
0
1
3
2
4
Ответ:
program bank;
var
s1,s2,p:real;
g:integer;
begin
write('Введите начальную сумму ’); readln(s1);
write(’Введите конечную сумму ’); readln(s2);
write(’Введите процентную ставку ’); readln(p);
g:=0;
while s1
s1:=s1 + s1 * p / 100;
g:=g + 1;
end;
writeln(’До накопления суммы пройдёт ’,g,’ лет’);
end.
2 раза
a = 6
a := 4; b := 6;
while a < b do a := a + b;
1 раз
a = 10
a := 4; b := 6;
while a > b do a := a + 1;
0 раз
a = 4
a := 4; b := 6;
while a < b do a := a - 1;
зацикливание
REPEAT – повторить
UNTIL – до тех пор
Операторы циклической части выполняются повторно (по крайней мере 1 раз), до тех пор, пока значение логического выражения ложно.
Условием прекращения циклических вычислений является истинное значение логического выражения.
ИТАК, сначала выполняется циклическая часть, а затем проверяется условие.
. . .
Write(‘n=‘);
Readln(n);
m := n; k :=0;
Repeat
m := m div 10;
k := k +1;
Until m = 0;
Writeln (‘количество цифр в числе‘, n, ‘=‘, k);
Readln;
End.
Операторные скобки (begin ... end)
здесь не нужны;
2. Тело цикла выполнится хотя бы раз независимо от условия.
3 раза
a = 7
a := 4; b := 6;
repeat a := a + b until a > b;
1 раз
a = 10
a := 4; b := 6;
repeat a := a + b until a < b;
зацикливание
a := 4; b := 6;
repeat b := a - b until a < b;
2 раза
b = 6
a := 4; b := 6;
repeat a := a + 2 until a < b;
зацикливание
Алгоритм Евклида – это алгоритм нахождения наибольшего
общего делителя (НОД) двух целых неотрицательных чисел.
program primer_1;
var a,b,c,n,i:integer;
begin
cls;
writeln(‘введите число n’);
readln(n);
a:=1; b:=1;
writeln (a,b);
i:=3;
repeat
c:=a+b;
writeln(c);
a:=b; b:=c;
i:=i+1
until i>n
end.