1. n i s
0
3 1
2
3
4 виходимо з циклу
Друкуємо: s=
Повторюємо
begin s:=0; readln (n);
for i:=1 to n do
s:=s+i/(i+1);
writeln (‘s=‘, s);
end.
2
1
0
3
2
2
1
0
4
3
3
2
2
1
0
var s: real;
i, n:integer;
3. Загальний вигляд та дія оператора:
while <логічний вираз>do
begin < серія команд>;
end;
Доки значення логічного виразу істинне,
виконується серія команд. Істинний логічний
вираз описує умову продовження процесу
виконання команди циклу
4. Приклад
Нехай є такий фрагмент програми
x:=4; s:=0;
while x<=8 do begin s:=s+x; x:=x+1 end;
при виконані такої програми в комірках x та s будуть
наступні значення
x |s
4 |0+4
5 |4+5
6 |9+6
7 |15+7
8 |22+8
9 | виконання команд циклу припиняється!
Отже, s=30, a x=9
5. Видрукувати значення функції y=x2+5
на проміжку [-3;3] з кроком 0,5
var x, y: real;
begin x:=-3;
while x<=3 do
begin y:=sqr(x)+5;
writeln ('x=', x:4:0, 'y=', y:4:0);
x:=x+0.5;
end;
end.
6. Видрукувати значення функції y=x2-2
на проміжку [a;b] з кроком h
var x, y,a, b, h: real;
begin write ('vvedid megi'); readln (a, b);
write ('vvedid krok'); readln (h);
x:=a;
while x<=b do begin y:=sqr(x)-2;
writeln ('x=', x:4:0, 'y=', y:4:0);
x:=x+h;
end;
end.
7. Визначити кількість двоцифрових
чисел кратних 5
var k, x: integer;
begin k:=0; x:=10; {перше двоцифрове число, кратне 5}
while x<=99 do
begin k:=k+1; {накопичуємо лічильник}
x:=x+5; end;
writeln ('kilkist kratnyh 5:', k);
end.
8. Обчислити суму S=1/2+3/4+5/6+...+15/16
var s, i: real;
begin s:=0; i:=1; {параметром циклу є значення чисельника}
{i:=2}{параметром циклу є значення знаменника}
while i<=15 {i<=16} do
begin s:=s+i/(i+1); {накопичуємо суму}
{s:=s+(i-1)/i}
i:=i+2; end;
writeln ('s=', s);
end.
9. Домашнє завдання
1. s:=2; x:=7;
while x>-4 do
begin s:=s+x; x:=x-2; end;
а) Скільки разів повторюється цикл?
б) Скільки команд утворюють тіло циклу?
в) Що з’явиться в результаті виконання операторів в
комірці х?
г) Які значення будуть в комірці s протягом
виконання програми?