При активизации пункта 1 формируется окно, в котором находится информация о названии вуза; пункта 2 — окно с информацией о номере группы студента; пункт 3 — окно с Ф.И.О. студента. При активизации — ВЫХОД: программа завершает работу.Но меню организуется в виде прямоугольников, расположенных последовательно по диагонали
uses crt,graph;
type Point=record{для центра курсора}
x,y,x1,y1:integer;
end;
procedure Clear;
{очистка экрана, за исключением вертикальной полосы, где меню}
begin
Setcolor(0);
rectangle(95,1,640,480);
setfillstyle(1,0);
Bar(95,1,640,480);
end;
procedure Krug;
{рисование окружности, это просто так, замените на свое}
begin
Setcolor(5);
Circle(200,200,100);
end;
procedure Kvadrat;{тоже квадрат}
begin
Setcolor(9);
rectangle(105,15,620,460);
end;
procedure MyBar;{тоже параллелепипед}
begin
Setcolor(10);
rectangle(195,200,340,380);
setfillstyle(1,10);
Bar3D(195,200,340,380,50,topon);
end;
procedure Grafik;{Ваша процедура}
var xe,ye,xen,xek,yen, yek: integer;
xs,ys,kdx,kdy,kt, i: integer;
x2,y2,xn,yn,xk,yk,mx,my,hx,hdx, hdy: real;
x,y:integer;
xst, yst: string;
begin
xn:=170;
xk:=x+30;
yn:=-1.5;
yk:=1.5;
xen:=150;
xek:=630;
yen:=400;
yek:=50;
hdx:=pi;
hdy:=0.5;
kdx := round ((xk-xn)/hdx+1);
kdy := round ((yk-yn)/hdy+1);
setcolor (14);
rectangle (xen,yek,xek,yen);
mx:=(xk-xn)/(xek-xen);
my:=(yk-yn)/(yen-yek);
xs := round (xen+(0-xn)/mx);
ys := round (yen-(0-yn)/my);
line (xen,ys,xek,ys);
line (xs,yen,xs,yek);
x2:=xn;
for i:=1 to kdx do
begin
xe := round (xen+(x-xn)/mx);
str (x2:5:2,xst);
line (xe,yen,xe,yen+5);
outtextxy (xe-20,yen+10,xst);
x2:=x2+hdx;
end;
y2:=yn;
for i:=1 to kdy do
begin
ye := round (yen-(y-yn)/my);
str (y2:5:2,yst);
line (xen,ye,xen-5,ye);
outtextxy (xen-50,ye-4,yst);
y2:=y+hdy;
end;
x2:=xn;
hx:=mx;
kt:=xek-xen+1;
Moveto (round(xn),round(yn));
for i:=1 to kt do
begin
y2 := sin(x2);
xe := round (xen+(x-xn)/mx);
ye := round (yen-(y-yn)/my);
Lineto (xe,ye);
x2:=x2+hx;
end;
end;
procedure menyu;
{создание кнопок, курсора, его перемещение и условия выполнения процедур}
var x,y,x1,y1:integer;
i,c:byte;
a:Point; {центр курсора}
move:boolean;
k:char;
begin
{sozdanie knopok}
x:=1;y:=10;{верхний левый угол первой кнопки}
for i:=1 to 6 do
begin
y:=10+20*(i-1);
Setcolor(i+1);
Rectangle(x,y,x+90,y+20);
Setfillstyle(1,i+1);
Bar(x,y,x+90,y+20);
end;
{nadpisi na knopkah}
Setcolor(0);
outtextxy(5,18,'Krug');
outtextxy(5,38,'Kvadrat');
outtextxy(5,58,'Bar3D');
outtextxy(5,78,'Grafik');
outtextxy(5,98,'Clear');
outtextxy(5,118,'Exit');
{sozdanie i dvizenie kursora}
a.x:=80;a.y:=138;{nachalo}
move:=true;
repeat
if keypressed then
begin
k:=readkey;
if k=#80 then
begin
a.y1:=a.y;
a.x1:=a.x;
a.y:=a.y+20;
move:=true;
end;
if k=#72 then
begin
a.y1:=a.y;
a.x1:=a.x;
a.y:=a.y-20;
move:=true;
end;
if (k=#13)and (a.y=18) then Krug; {knoka 1 + Enter}
if (k=#13)and (a.y=38) then Kvadrat;
if (k=#13)and (a.y=58) then MyBar;
if (k=#13)and (a.y=78) then Grafik;
if (k=#13)and (a.y=98) then Clear;
if (k=#13)and (a.y=118) then k:=#27;
end;
if move then
begin
if a.y1=18 then c:=2
else if a.y1=38 then c:=3
else if a.y1=58 then c:=4
else if a.y1=78 then c:=5
else if a.y1=98 then c:=6
else if a.y1=118 then c:=7
else c:=0;
Setcolor(c);
Circle(a.x1,a.y1,5);
Setfillstyle(1,c);
Fillellipse(a.x1,a.y1,5,5);
Setcolor(12);
Circle(a.x,a.y,5);
Setfillstyle(1,12);
Fillellipse(a.x,a.y,5,5);
move:=false;
end;
until k=#27;
end;
var gd,gm:integer;
begin
gd:=detect;
initgraph(gd,gm,'');
menyu;
closegraph;
end.