Program Grafic; Uses Crt, Graph; Const n=20; Type MasData = Array[1..n] of Integer; MasMax = Array[1..35] of Real; PointType = record f,j : Word end; Var b: MasData; c : MasMax; x,y:Real; St : String[4]; A, Mx, Mx01, Mx09, Msx, My, My09, My005, Msy : Integer; F1: Text; {-------Выход из графического режима----------} PROCEDURE grafika_off; BEGIN closegraph; END; {-------Переход в графический режим----------} PROCEDURE grafika_on; var Ga, Gm, Error : Integer; BEGIN Ga := Detect; Gm := Detect; InitGraph (Ga, Gm, 'c:\bp\bgi'); Error := GraphResult; If Error <> Grok Then Begin Writeln('Ошибка!Графический драйвер не найден',#10#13,GraphErrorMSG (Error)); Halt; End; End; {-------Вывод данных из файла----------} Procedure Vivod(var b: MasData;c: MasMax); var i:byte; p:array[1..6] of PointType; Begin Assign (F1, 'c:\Vivod.txt'); Reset (F1); While Not EOF (F1) do begin for i:=1 to n do begin Read(F1,b[i],c[i]); MoveTo(Mx01,My09); for i:=1 to 6 do begin b[i]:=(b[i]-Msx+20)*Mx; c[i]:=getmaxy - (c[i]-Msy+40)*My; end; for i:=1 to 6 do begin p[i].f:=round(b[i]); p[i].j:=round(c[i]); end; drawpoly(6,p); readln; end; end; Close (F1); End; {-------Определение используемых значений----------} procedure Opredelenie; Begin Mx := GetMaxX; Mx01 := Round (0.1* Mx); Mx09 := Round (0.9* Mx); My := GetMaxY; My09 := Round (0.9*My); My005 := Round (0.05* My); SetColor (12); end; {-------Вывод осей координат----------} procedure osikoord; begin Line (20, My09, Mx-10, My09); Line (Mx01, My005, Mx01, My-9); {Risovanie strelok} Line (Mx-20, My09-3, Mx-10, My09); Line (Mx-20, My09+3, Mx-10, My09); Line (Mx01, My005, Mx01-3, My005+10); Line (Mx01, My005, Mx01+3, My005+10); {Nadpisi po osam X u Y} SetTextStyle (0, 0, 2); SetColor(14); OutTextXY (Mx01-40, My005, ' Y '); OutTextXY (Mx-40, My09-25, ' X '); SetTextStyle (0, 0, 1); SetColor(12); End; {-------Разметка осей----------} procedure Razmetka; begin {Разметка оси Y} Msy := Round (My09 / 40); y := 1; While y<=35 Do Begin Str (Y, St); A := Round (My09 - Msy * y); Line (Mx01+2, A, Mx01-2, A); OutTextXY (Mx01-40, A-2, St); y := y+1; End; {Разметка оси x} Msx := Round (Mx09 / 20); x := 1; While x<=n Do Begin Str (x+1, St); A := Round (Mx01 + Msx * x); Line (A, My09+3, A, My09-3 ); OutTextXY (A, My09+5, St); x := x + 1; end; SetColor(2); end; {-------Вывод графика----------} Procedure VivodGraph; Begin Opredelenie; osikoord; Razmetka; Vivod(b,c); readln; End; {-------Основная программа----------} BEGIN grafika_on; VivodGraph; grafika_off; END.