ответ:
uses graphabc;
var xx,yy,u: integer;
procedure growl(x,y,r: integer);
var i: byte;
begin
for i: =1 to r do
begin
circle(x,y,i);
sleep(5);
end;
end;
procedure growr(x,y: integer);
var i: byte;
begin
for i: =1 to 20 do
begin
ellipse(x-5,y-(i),x-(i*3),y+(i));
ellipse(x+5,y-(i),x+(i*3),y+(i));
ellipse(x-(i),y-5,x+(i),y-(i*3));
ellipse(x-(i),y+5,x+(i),y+(i*3));
sleep(3);
end;
end;
procedure fall;
var r,prer,i: byte;
x,y: integer;
begin
for i: =1 to 10 do
begin
x: =random(160)-80+windowwidth div 2;
prer: =0;
r: =random(10)+10;
for y: =80+windowheight div 2 to windowheight+30 do
begin
setpencolor(clwhite);
circle(x,y-1,prer);
setpencolor(clblack);
circle(x,y,r);
prer: =r;
sleep(3);
end;
end;
end;
procedure growd (x,y: integer);
var i: byte;
begin
for i: =20 downto 5 do
begin
clearwindow;
setbrushcolor(clgreen);
ellipse(x-5,y-(20),x-(60),y+(20));
ellipse(x+5,y-(20),x+(60),y+(20));
ellipse(x-(20),y-5,x+(20),y-(60));
ellipse(x-(20),y+5,x+(20),y+(60));
setbrushcolor(rgb(255,255-((20-i)*10),255-((20-i)*;
circle(x-i,y-i,i);
circle(x+i,y-i,i);
circle(x+i,y+i,i);
circle(x-i,y+i,i);
sleep(5);
end;
end;
var j: integer;
begin
repeat
setbrushcolor(clgreen);
growr(windowwidth div 2,windowheight div 2);
setbrushcolor(clwhite);
for j: =1 to 360 do
if j mod 10=0 then
begin
xx: =round(windowwidth div 2+20*cos(pi*(u+(j*10))/180));
yy: =round(windowheight div 2+20*sin(pi*(u+(j*10))/180));
growl(xx,-j) div 10));
end;
sleep(100);
fall;
growd (windowwidth div 2,windowheight div 2);
sleep(100);
until false;
end.
объяснение:
Объясню на примере первой задачи.
Перед нами написана программа (алгоритм) на языке псевдокода.
В начале программы объявляются переменные, с которыми мы будем работать. В данном случае, объявляются переменные s и n целочисленного типа (цел). Дальше идет присвоение переменной s значения 1. нц говорит о том, что дальше идет цикл. Каждую его итерацию (шаг) будет выполняться его тело (все, что между нц и кц). Конструкция для x от n до m говорит о том, что каждую итерацию переменная x будет увеличиваться на единицу (если указан шаг, т.е. конструкция выглядит так: для x от n до m шаг y, то будет увеличиваться на y) от числа n до числа m. Как только x будет равна m, цикл прекратится и будут выполняться действия после него. В нашем случае переменной n присваивается 3, выполняется тело s:=s*3. Т.е. после этого шага s будет равна 9. Теперь новая итерация. Переходим в начало цикла. Переменной n присваивается 4 (в предыдущий раз было 3). И опять выполняется действие s:=s*3. s становится равной 27. Потом опять новая итерация. И так далее. Когда n будет равна 5 ,то произойдет последняя итерация. Дальше пойдет вывод s, который после 4 итераций (n от 2-х до 5-ти включительно) будет равна 81.
Итерации более детально:
1. n = 2; s = 1*3 = 3
2. n = 3; s = 3*3 = 9
3. n = 4; s = 9*3 = 27
4. n = 5; s = 27*3 = 81
Все, цикл завершился.
ответы:
1) 81
2) 50
Итерации более детально:
1. n = 3; s = 0+2*3 = 6
2. n = 4; s = 6+2*4= 14
3. n = 5; s = 14+2*5 = 24
4. n = 6; s = 24+2*6 = 36
5. n = 7; s = 36+2*7 = 50
3) 13
4) 11
5) 121
6) 120
7) 38
8) 20
9) 40
Заметим, что в данной задаче указан шаг (step 2). Это значит, что каждую итерацию k будет увеличиваться не на 1-цу, а на 2-ку.
Итерации более детально:
1. k = 6; s = 0+10 = 10
2. k = 8; s = 10+10 = 20
3. k = 10; s = 20+10 = 30
4. k = 12; s = 30+10 = 40