Составьте программу выводящуюю любой рисунок ** экран."Желательно какой нибудь домик с...

0 голосов
31 просмотров

Составьте программу выводящуюю любой рисунок на экран."Желательно какой нибудь домик с деревьями"


Информатика (21 баллов) | 31 просмотров
Дан 1 ответ
0 голосов

Program drawFigure;
 uses graph;
 var 
  gD,gR:integer;
 procedure drawHouse(x,y:word);
  const
   wallSide=70;
   windowSide=20;
  var
   houseRoof:array[1..4] of pointtype;
  begin
   setFillStyle(1,10);
   bar(x,y-wallSide,x+wallSide,y); rectangle(x,y-wallSide,x+wallSide,y);
   setFillStyle(1,1);
   bar(x+wallSide div 2-windowSide div 2,y-wallSide+wallSide div 2-windowSide div 2,       x+wallSide div 2-windowSide div 2+windowSide,y-wallSide+wallSide div 2-windowSide div 2+windowSide); rectangle(x+wallSide div 2-windowSide div 2,y-wallSide+wallSide div 2-windowSide div 2, x+wallSide div 2-windowSide div 2+windowSide,y-wallSide+wallSide div 2-windowSide div 2+windowSide);
   setFillStyle(1,2);
   houseRoof[1].x:=x; houseRoof[1].y:=y-wallSide;   houseRoof[2].x:=x+wallSide;
   houseRoof[2].y:=y-wallSide;
   houseRoof[3].x:=x+wallSide div 2; houseRoof[3].y:=y-wallSide-wallSide div 2;
   houseRoof[4].x:=x; houseRoof[4].y:=y-wallSide;
   fillPoly(4,houseRoof);
  end;
 procedure drawTree(x,y:word);
  const
   treeFH=90;
   treeFW=8;
  var
   ci:byte;
   branchFH,branchFW:byte;
  begin
   setFillStyle(1,6);
   bar(x,y-treeFH,x+treeFW,y);
   for ci:=1 to 6 do
    begin
     branchFH:=random(5)+1; branchFW:=random(8)+10;
     bar(x-branchFW,y-treeFH+ci*10,x,y-treeFH+ci*10+branchFH);
     bar(x+treeFW,y-treeFH+ci*10,x+treeFW+branchFW,y-treeFH+ci*10+branchFH);
    end;
  end;
begin
 randomize;
 initgraph(gD,gR,'');
 drawHouse(100,280); drawHouse(230,270); drawHouse(430,290);  drawHouse(330,180);
 drawTree(195,278); drawTree(325,275);  drawTree(265,350); drawTree(360,290);  drawTree(400,240); drawTree(580,285); drawTree(110,370);
 readln; closeGraph;
end.

(851 баллов)