PascalABC
Трапеция
Program Pascal4.0
uses crt,graphABC;
var a,b,h,//длины оснований и высота
d, //размер клетки
kw,kh,//количество клеток в ширину и в высоту
wd,hg,//ширина и высота окна
xc,yc,//кординаты центра нижнего основания
dy,//шаг при рисовании пунктирной линии
i,x,y:integer;//счетчики
begin
repeat
write('Введите число клеток нижнего основания четное число от 10 до 30 b=');
readln(b);
until (b in [10..30])and(b mod 2=0);
write('Введите число клеток верхнего основания четное число от 2 до ',b-2,' a=');
readln(a);
until (a in [2..b-2])and(a mod 2=0);
write('Введите число клеток высоты от 2 до 20 h=');
readln(h);
until h in [2..20];
clrscr;
hidecursor;
kw:=b+3;
kh:=h+4;
d:=20;
wd:=(kw+2)*d;
hg:=(kh+2)*d;
setwindowsize(wd,hg);
centerwindow;
xc:=d*(b div 2+3);
yc:=hg-2*d;
setpencolor(clLtGray);
y:=d;
for i:=1 to kh do
line(d,y,wd-d,y);
y:=y+d;
end;
x:=d;
for i:=1 to kw do
line(x,d,x,hg-d);
x:=x+d;
setpencolor(clBlack);
setpenwidth(2);
line(d,d,wd-d,d);
line(d,d,d,hg-d);
for i:=2 to kw do
line(d*i,d-5,d*i,d+5);
for i:=2 to kh do
line(d-5,i*d,d+5,i*d);
line(xc-(b div 2)*d,yc,xc+(b div 2)*d,yc);
line(xc-(a div 2)*d,yc-h*d,xc+(a div 2)*d,yc-h*d);
line(xc-(b div 2)*d,yc,xc-(a div 2)*d,yc-h*d);
line(xc+(b div 2)*d,yc,xc+(a div 2)*d,yc-h*d);
dy:=5;
y:=yc;
while y>yc-h*d do
line(xc-(a div 2)*d,y,xc-(a div 2)*d,y+dy);
y:=y-2*dy;
setfontsize(16);
textout(xc,yc-(h+1)*d-5,'a');
textout(xc-(a div 2)*d+5,yc-d*(h div 2),'h');
end.
Платье:
для Pascal ABC
uses GraphABC;
var
a:integer;
moveto(a,1);
circle(a+a div 2,1,a div 4);
lineto(a+a div 4,1);
moveto(a+ (a div 4)*3,1);
lineto (2*a,1);
lineto(2*a,1+a);
lineto (a,1+a);
lineto (a,1);
moveto (a,1+a);
lineto (a-(a div 2),1+2*a);
lineto(2*a+a div 2, 1+2*a);
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
PascalABC
Трапеция
Program Pascal4.0
uses crt,graphABC;
var a,b,h,//длины оснований и высота
d, //размер клетки
kw,kh,//количество клеток в ширину и в высоту
wd,hg,//ширина и высота окна
xc,yc,//кординаты центра нижнего основания
dy,//шаг при рисовании пунктирной линии
i,x,y:integer;//счетчики
begin
repeat
write('Введите число клеток нижнего основания четное число от 10 до 30 b=');
readln(b);
until (b in [10..30])and(b mod 2=0);
repeat
write('Введите число клеток верхнего основания четное число от 2 до ',b-2,' a=');
readln(a);
until (a in [2..b-2])and(a mod 2=0);
repeat
write('Введите число клеток высоты от 2 до 20 h=');
readln(h);
until h in [2..20];
clrscr;
hidecursor;
kw:=b+3;
kh:=h+4;
d:=20;
wd:=(kw+2)*d;
hg:=(kh+2)*d;
setwindowsize(wd,hg);
centerwindow;
xc:=d*(b div 2+3);
yc:=hg-2*d;
setpencolor(clLtGray);
y:=d;
for i:=1 to kh do
begin
line(d,y,wd-d,y);
y:=y+d;
end;
x:=d;
for i:=1 to kw do
begin
line(x,d,x,hg-d);
x:=x+d;
end;
setpencolor(clBlack);
setpenwidth(2);
line(d,d,wd-d,d);
line(d,d,d,hg-d);
for i:=2 to kw do
line(d*i,d-5,d*i,d+5);
for i:=2 to kh do
line(d-5,i*d,d+5,i*d);
line(xc-(b div 2)*d,yc,xc+(b div 2)*d,yc);
line(xc-(a div 2)*d,yc-h*d,xc+(a div 2)*d,yc-h*d);
line(xc-(b div 2)*d,yc,xc-(a div 2)*d,yc-h*d);
line(xc+(b div 2)*d,yc,xc+(a div 2)*d,yc-h*d);
dy:=5;
y:=yc;
while y>yc-h*d do
begin
line(xc-(a div 2)*d,y,xc-(a div 2)*d,y+dy);
y:=y-2*dy;
end;
setfontsize(16);
textout(xc,yc-(h+1)*d-5,'a');
textout(xc-(a div 2)*d+5,yc-d*(h div 2),'h');
end.
Платье:
для Pascal ABC
uses GraphABC;
var
a:integer;
begin
readln(a);
moveto(a,1);
circle(a+a div 2,1,a div 4);
lineto(a+a div 4,1);
moveto(a+ (a div 4)*3,1);
lineto (2*a,1);
lineto(2*a,1+a);
lineto (a,1+a);
lineto (a,1);
moveto (a,1+a);
lineto (a-(a div 2),1+2*a);
lineto(2*a+a div 2, 1+2*a);
lineto(2*a,1+a);
end.