Задание:
Определите, что будет напечатано в результате работы следующего фрагмента программы:
var k, s: integer;
begin
s:=5;
k:=0;
while k < 15 do begin
k:=k+2;
s:=s+k;
end;
write(s);
end.
Ответ: 77
Решение:
Решим задание на арифметическую прогрессию просто прогоняя каждый цикл.
Итак циклы:
1) 0 < 15
k:= 0 + 2 = 2
s:= s + k = 5 + 2 = 7
2) 2 < 15
k:= 2 + 2 = 4
s:= 7 + 4 = 11
3) 4 < 15
k:= 4 + 2 = 6
s:= 11 + 6 = 17
4) 6 < 15
k:= 6 + 2 = 8
s:= 17 + 8 = 25
5) 8 < 15
k:= 8 + 2 = 10
s:= 25 + 10 = 35
6) 10 < 15
k:= 10 + 2 = 12
s:= 35 + 12 = 47
7) 12 < 15
K:= 12 + 2 = 14
s:= 47 + 14 = 61
8) 14 < 15
k:= 14 + 2 = 16
s:= 61 + 16 = 77
9) 16 < 15 - Условие не выполняется, на экран выводится последнее значение S, то есть 77.