Тема:Программирование циклов с заданным условием окончания работы Итак, в первый день спортсмен пробежал 10 км (x:=10;). Во второй день на 10% больше (x:=x+0.1*x;), т.е. 10+0,1*10=11 км. Запишите, сколько километров пробежал спортсмен в 3 день?
ответ:
2)Дана следующая программа. Сколько раз выполнится цикл?
a:=1;
b:=1;
repeat
a:=a+1;
b:=b*2;
until b>8;
s:=a+b
ответ:
3)Дана следующая программа. Чему будут равны a, b, s после выполнения программы? Та же программа,что и в задании 2.
Варианты ответов:
1)a=2; b=2; s=4
2)a=5; b=16; s=21
3)a=6; b=32; s=38
4)a=4; b=8; s=12
5)a=3; b=4; s=7
6)a=1; b=1; s=2
var steps := 12; // За кол-во ходов
var Xend := 6; // В точку с координатой X
var Yend := 4; // ... и Y
var vars := 0; procedure Find(step, X, Y : Integer);
begin
if step = 0 then
vars += (X = Xend) and (Y = Yend) ? 1 : 0
else
begin
Find(step - 1, X + 1, Y );
Find(step - 1, X - 1, Y );
Find(step - 1, X , Y + 1);
Find(step - 1, X , Y - 1);
end;
end;
begin
Find(steps, 0, 0);
Print(vars);
end.
var steps := 12; // За кол-во ходов
var Xend := 7; // В точку с координатой X
var Yend := 3; // ... и Y
var vars := 0; procedure Find(step, X, Y : Integer);
begin
if step = 0 then
vars += (X = Xend) and (Y = Yend) ? 1 : 0
else
begin
Find(step - 1, X + 1, Y );
Find(step - 1, X - 1, Y );
Find(step - 1, X , Y + 1);
Find(step - 1, X , Y - 1);
end;
end;
begin
Find(steps, 0, 0);
Print(vars);
end.