решить проблему на языке Паскаль.
Елочка в снегу​


решить проблему на языке Паскаль. Елочка в снегу​

Neuch18 Neuch18    3   05.01.2021 23:19    5

Ответы
dzyskristina503 dzyskristina503  12.02.2021 22:22

uses wincrt,graph;

const rstart=40;

type mas=array[1..500] of Pointtype;

procedure snezinki(a:mas;c:integer);

var i:integer;

begin

setcolor(c);

for i:=1 to 500 do

circle(a[i].x,a[i].y,2);

end;

procedure elka;

var y,r,i,j:integer;

begin

setcolor(green);

for j:=2 to 6 do

begin

 y:=(getmaxy div 10)*j+120;

 r:=rstart+15*j;

 for i:=1 to 5 do

  begin

   arc((getmaxx div 2)-r,y,350-(r div 5)-8*j,359,r);

   arc((getmaxx div 2)+r,y,181,190+(r div 5)+8*j,r);

   inc(y,7);

   inc(r,5);

  end;

end;

end;

procedure sneg(n:integer);

begin

setcolor(white);

setfillstyle(1,white);

bar(0,getmaxY-n,getmaxX,getmaxY);

end;

var gd,gm,i,k,n:integer;

   a:mas;

begin

randomize;

gd:=0;

initgraph(gd,gm,'');

for i:=1 to 500 do

begin

 a[i].x:=random(getmaxX);

 a[i].y:=random(getmaxY);

end;

setcolor(blue);

setfillstyle(1,blue);

bar(0,0,getmaxX,getmaxY);{делаем синий фон}

snezinki(a,white);{рисуем снежинки}

k:=0;{количество шагов}

repeat

k:=k+1;

delay(10);

snezinki(a,blue);{рисуем снежинки цветом фона, стираем}

for i:=1 to 500 do

begin

 if a[i].y>getmaxY-n-10 then a[i].y:=1

 else a[i].y:=a[i].y+3;

 if a[i].x<0 then a[i].x:=getmaxX

 else a[i].x:=a[i].x-1;

end;

snezinki(a,white);{рисуем снежинки белым}

elka; {рисуем елку}

n:=k div 10;{на каждом 10-м шаге увеличиваем толщину снега на земле}

sneg(n);{рисуем снег на земле}

if n>50 then{если толщина снега 50}

begin

 snezinki(a,blue);{стираем снежинки}

 setcolor(lightred);{выводим надписи}

 settextstyle(0,0,3);

 outtextXY(250,50,'Snegopad konchilsa');

 setcolor(yellow);

 settextstyle(0,0,2);

 outtextXY(340,80,'Press any key');

end;

until keypressed or(n>50);{если нажали клавишу или снег>50 конец}

readkey{ждем нажатия клавиши для выхода}

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика