1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
uses graphABC;
var n,da,db,x1,y1,x2,y2:integer;
begin
repeat
write('Введите количество точек от 2 до 50 n=');
readln(n);
until n in [2..50];
clearwindow;
da:=(windowwidth-100)div (n-1);//расстояние между точками ввверху
db:=da div 4;//то же внизу
if odd(n) then//если n нечетное
x1:=windowwidth div 2-da*(n div 2);
x2:=windowwidth div 2-db*(n div 2);
end
else //если четное
x1:=windowwidth div 2-da*(n div 2-1)- da div 2;
x2:=windowwidth div 2-db*(n div 2-1)- db div 2;
end ;
y1:=50;
y2:=windowheight-50;
for var i:=0 to n-1 do
line(x1+i*da,y1,x2+i*db,y2);
line(x1,y1,x1+(n-1)*da,y1);
line(x2,y2,x2+(n-1)*db,y2);
end.
Объяснение:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
uses graphABC;
var n,da,db,x1,y1,x2,y2:integer;
begin
repeat
write('Введите количество точек от 2 до 50 n=');
readln(n);
until n in [2..50];
clearwindow;
da:=(windowwidth-100)div (n-1);//расстояние между точками ввверху
db:=da div 4;//то же внизу
if odd(n) then//если n нечетное
begin
x1:=windowwidth div 2-da*(n div 2);
x2:=windowwidth div 2-db*(n div 2);
end
else //если четное
begin
x1:=windowwidth div 2-da*(n div 2-1)- da div 2;
x2:=windowwidth div 2-db*(n div 2-1)- db div 2;
end ;
y1:=50;
y2:=windowheight-50;
for var i:=0 to n-1 do
line(x1+i*da,y1,x2+i*db,y2);
line(x1,y1,x1+(n-1)*da,y1);
line(x2,y2,x2+(n-1)*db,y2);
end.
Объяснение: