Составить программу рисования пирамиды, имеющей в основании квадрат. Высоту и длину основания следует задавить в диалоге — Pascal(Паскаль)

uses crt,graph;
var a,h,gd,gm,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,i,b1,b2:integer;
    p1,p2,p3 :array[1..4] of PointType;
    k1,k2:real;
begin
clrscr;
repeat
write('Dlina osnovanya [100..400] a=');
readln(a);
until (a>=100)and(a<=400);
repeat
write('Vysota [100..300] h=');
readln(h);
until (h>=100)and(h<=300);
{nachalnaya tochka osnovanya}
x1:=200;y1:=250;
{ostalnye tochki osnovanya}
x2:=x1+a;y2:=y1;
x3:=x1-round(a*0.71*0.71)+a;y3:=y1+round(a*0.71*0.71);
x4:=x1-round(a*0.71*0.71);y4:=y3;
{vershina}
x5:=x4+round(a/2*(1+0.71*0.71));y5:=y1+round((y3-y1)/2)-h;
{risovanye}
gd:=detect;
initgraph(gd,gm,'');
{pered}
p1[1].x:=x4;p1[1].y:=y4;
p1[2].x:=x5;p1[2].y:=y5;
p1[3].x:=x3;p1[3].y:=y3;
p1[4].x:=x4;p1[4].y:=y4;
setcolor(15);
setlinestyle(0,0,1);
moveto(p1[1].x,p1[1].y);
for i:=1 to 4 do
lineto(p1[i].x,p1[i].y);
{pravo}
p2[1].x:=x3;p2[1].y:=y3;
p2[2].x:=x5;p2[2].y:=y5;
p2[3].x:=x2;p2[3].y:=y2;
p2[4].x:=x3;p2[4].y:=y3;
moveto(p2[1].x,p2[1].y);
for i:=1 to 4 do
lineto(p2[i].x,p2[i].y);
{vnytri}
setlinestyle(1,0,1);
line(x1,y1,x4,y4);
line(x1,y1,x2,y2);
line(x1,y1,x5,y5);
readln
end.

Leave a Comment

37 + = 41