
ответ:
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 = 0
For x = 100 To 999
s = s + x
Next x
Print s
Если её запустить, получается результат: 494550.
Стал я смотреть дальше на закономерности, учитывая ручной сложения по два.
И пришёл к интересным выводам.
Если наш диапазон чисел 900. Это числа: 100,101,...,999. Всего их 900. (999-100+1=900 )
Это 899 чисел (от 101 до 999) и 900 - е число - это число 100.
То если решать методом сумм по 2, то нужно 450 сложений.
Число 450 получается из числа 900: 900/2=450.
Теперь получается интересный эффект.
Если попробовать поделить полученный результат 494550 на наше число 450, то получается число 1099.
А что такое число 1099?
Это сумма чисел из нашего условия: 100+999=1099.
Получается, зная это с самого начала, не нужно было бы делать 450 сложений.
Нужно просто перемножить 450 на 1099 и получишь 494550.
Получается вот такая формула для решения данной задачки:
Summa =(100+999)*(999-100+1)/2=1099*450=494550.
Не знаю, насколько годится данная формула для решения других задачек (особенно для нечётного диапазона чисел), это ещё надо проверять, но результат получился интересный.