ВУЗ:
Составители:
Рубрика:
Внимание: будет работать только если Turbo Pascal установлен в каталог
C:\TP и каталог C:\TP\BGI содержит необходимый файл egavga.bgi.
Program Triangles; {Составил студент Тезадов С., 1 к. мат. фак. КБГУ}
Uses Crt,Graph;
Const DemoN = 10;
DemoX: array [1..DemoN] of Integer =
(20,150,90,500,50,110,370,300,70,500);
DemoY: array [1..DemoN] of Integer =
(20,40,300,400,380,130,290,140,60,170);
Var X, Y : Array[1..50] of Integer; {координаты точек множества}
InX, InY : Array[1..50] of Integer; {координаты вершин внутренних}
Flag : Boolean; {треугольников}
Ch : Char;
Coord, Num : String;
i, j, k, p, i1, j1, k1, n, n1 : Integer;
GrDriver, GrMode, GrError : Integer;
{--------------------------}
Procedure InputOutput; {Описание процедуры считывания координат точек
множества из текстового файла dan.dat в массивы
X и Y и вывода точек на графический экран }
Var f : Text;
a,b : Real;
Begin
Assign(f, 'dan.dat'); {установление связи между физическим }
{файлом dan.dat и файловой пеpеменной f}
{$I-} {- отключаем
автоматическую проверку существования файла}
Reset(f); i:=0; {открытие файла f для чтения}
{$I+}
If IOResult = 0 then begin {если файл существует}
While not eof(f) do {цикл "пока не будет достигнут конца файла"}
begin Read(f,a,b); Inc(i); {считывание из файла f пары координат}
X[i]:=Trunc(a-1); Y[i]:=Trunc(428-b) {преобразование декартовых}
end; {координат в координаты графического экрана}
n:=i; {n - количество введенных точек множества}
Close(f); {закрытие файла f}
end
Else begin {если файла не существует, то используем множество точек,}
n := DemoN; {заданное
в DemoN, DemoX, DemoY.}
For i:=1 to DemoN do begin
x[i] := DemoX[i];
y[i] := 428 - DemoY[i];
end;
end;
SetColor(LightCyan);
OutTextXY(200,30,'ИСХОДНОЕ МНОЖЕСТВО ТОЧЕК');
For i:=1 to n do {рисование и нумерация точек множества}
begin Circle(X[i], Y[i], 2);
Str(i, Num); OutTextXY(X[i]+4, Y[i]+3, Num)
end;
Ch:=ReadKey; ClearViewPort; {очистка графического окна}
End; {of InputOutput}
{--------------------------}
Procedure Drawing_Axes; {описание процедуры рисования осей координат}
Begin SetColor(White);
MoveTo(30,0); LineTo(30,430); LineTo(639,430); {оси ОХ,OY}
OutTextXY(27,0,'^'); OutTextXY(630,427,'>'); {стрелки осей OX, OY}
SetColor(LightGreen);
OutTextXY(18,0,'y'); OutTextXY(630,434,'x');
OutTextXY(25,433,'0');
SetColor(LightMagenta); {установка розового цвета}
For i:=1 to 20 do {нанесение делений и числовых отметок на ось OY}
begin Str(20*(21-i), Coord); j:=i*20+10;
Внимание: будет работать только если Turbo Pascal установлен в каталог C:\TP и каталог C:\TP\BGI содержит необходимый файл egavga.bgi. Program Triangles; {Составил студент Тезадов С., 1 к. мат. фак. КБГУ} Uses Crt,Graph; Const DemoN = 10; DemoX: array [1..DemoN] of Integer = (20,150,90,500,50,110,370,300,70,500); DemoY: array [1..DemoN] of Integer = (20,40,300,400,380,130,290,140,60,170); Var X, Y : Array[1..50] of Integer; {координаты точек множества} InX, InY : Array[1..50] of Integer; {координаты вершин внутренних} Flag : Boolean; {треугольников} Ch : Char; Coord, Num : String; i, j, k, p, i1, j1, k1, n, n1 : Integer; GrDriver, GrMode, GrError : Integer; {--------------------------} Procedure InputOutput; {Описание процедуры считывания координат точек множества из текстового файла dan.dat в массивы X и Y и вывода точек на графический экран } Var f : Text; a,b : Real; Begin Assign(f, 'dan.dat'); {установление связи между физическим } {файлом dan.dat и файловой пеpеменной f} {$I-} {- отключаем автоматическую проверку существования файла} Reset(f); i:=0; {открытие файла f для чтения} {$I+} If IOResult = 0 then begin {если файл существует} While not eof(f) do {цикл "пока не будет достигнут конца файла"} begin Read(f,a,b); Inc(i); {считывание из файла f пары координат} X[i]:=Trunc(a-1); Y[i]:=Trunc(428-b) {преобразование декартовых} end; {координат в координаты графического экрана} n:=i; {n - количество введенных точек множества} Close(f); {закрытие файла f} end Else begin {если файла не существует, то используем множество точек,} n := DemoN; {заданное в DemoN, DemoX, DemoY.} For i:=1 to DemoN do begin x[i] := DemoX[i]; y[i] := 428 - DemoY[i]; end; end; SetColor(LightCyan); OutTextXY(200,30,'ИСХОДНОЕ МНОЖЕСТВО ТОЧЕК'); For i:=1 to n do {рисование и нумерация точек множества} begin Circle(X[i], Y[i], 2); Str(i, Num); OutTextXY(X[i]+4, Y[i]+3, Num) end; Ch:=ReadKey; ClearViewPort; {очистка графического окна} End; {of InputOutput} {--------------------------} Procedure Drawing_Axes; {описание процедуры рисования осей координат} Begin SetColor(White); MoveTo(30,0); LineTo(30,430); LineTo(639,430); {оси ОХ,OY} OutTextXY(27,0,'^'); OutTextXY(630,427,'>'); {стрелки осей OX, OY} SetColor(LightGreen); OutTextXY(18,0,'y'); OutTextXY(630,434,'x'); OutTextXY(25,433,'0'); SetColor(LightMagenta); {установка розового цвета} For i:=1 to 20 do {нанесение делений и числовых отметок на ось OY} begin Str(20*(21-i), Coord); j:=i*20+10;