clrscr;
write('Vvedite imj vihodnogo fajla: ');
readLn(FName);
Assign(out_f,FName);
Rewrite(out_f);
WriteLn(out_f,'Min. radiys= ',min);
Close(out_f);
writeln('Fajl yspewno sohranen');
readln;
end;
END;
{******************** *******************************************************}
{****************************************************************************}
procedure Klava;
Var
m:integer; {kolli4estvo to4ek}
i:integer; {s4et4ik}
d:pnt; {koordinati to4ek}
BEGIN
clrscr;
PROV('Kolli4estvo to4ek M=',m,3,20);
for i:=1 to M do begin
writeLn('Vvedite koordinati ', i, '-j to4ki:');
PROV('.X = ', D[i].X,-99,99);
PROV('.Y = ', D[i].Y,-99,99);
end;
Osnova(m,d);
END;
{*********************** ****************************************************}
{****************************************************************************}
procedure ReDFile;
var in_f:file;
FName:string[20];
f:word;
m:integer; {kolli4estvo to4ek}
i:integer; {s4et4ik}
d:pnt; {koordinati to4ek}
BEGIN
clrscr;
f:=0;
write('Vedite imj fajla: ');
readLn(FName);
Assign(in_f,FName);
{$I-}
Reset(in_f,2);
{$I+}
if IOResult=0 then
begin
blockread(in_f, m,1);
for i:=1 to m do begin
blockread(in_f, D[i].X,1);
blockread(in_f, D[i].Y,1);
end;
Close(in_f);
if f=0 then
Osnova(m,d);
end
else
begin
writeln('OSHIBKA','FAJL NE SYWESTVYET');
readln;
end;
END;
{*********************** ****************************************************}
{****************************************************************************}
procedure CrTFile;
var in_f: file;
FName:string[20];
m:integer; {kolli4estvo to4ek}
i:integer; {s4et4ik}
D:pnt; {koordinati to4ek}
BEGIN
clrscr;
write('Vvedite imj fajla: ');
readLn(FName);
Assign(in_f,FName);
begin
clrscr;
Rewrite(in_f,2);
PROV('Vvedite kolli4estvo to4ek:',m,3,20);
BlockWrite(in_f,m,1);
for i:=1 to m do begin
writeLn('Vvedite koordinati ', i, '-j to4ki:');
PROV('.X = ', D[i].X,-99,99);
BlockWrite(in_f, D[i].X,1);
PROV('.Y = ', D[i].Y,-99,99);
BlockWrite(in_f, D[i].Y,1);
end;
ClrScr;
Close(in_f);
clrscr;
writeln('Fajl yspewno sozdan');
readln;
end;
END;
{****************************************************************************}
{****************************************************************************}
procedure Menu;
var
ch:char;
BEGIN
repeat
clrscr;
writeLn('4to vi hotite sdelat:');
writeLn('1: dlj voda vhodnih dannih s klaviatyru..');
writeLn('2: dlj s4ituvanij vhodnih dannih iz fajla..');
writeLn('3: dlj sozdanij vhodnogo fajla..');
writeLn(#10#13);
writeLn('0: dlj vihoda..');
repeat
ch:=ReadKey;
Until (ch='1') or (ch='2') or (ch='3') or (ch='0');
case ch of
'1': Klava;
'2': ReDFile;
'3': CrTFile;
end;
Until ch='0';
END;
{****************************************************************************}
{****************************************************************************}
BEGIN
Titlist;
Menu;
END.
5. Тестовые примеры
Входной файл:
Координаты 1-ой точки:
.X = 4
.Y = 6
Координаты 2-ой точки:
.X = 9
.Y = 0
Координаты 3-ей точки:
.X = 32
.Y = 6
Выходной файл:
Мин. радиус =: 7.21
Входной файл:
Координаты 1-ой точки:
.X = 10
.Y = 9
Координаты 2-ой точки:
.X = -34
.Y = -2
Координаты 3-ей точки:
.X = 3
.Y = 56
Координаты 4-ой точки:
.X = 1
.Y = 0
Выходной файл:
Мин. радиус =: 34.06