Смекни!
smekni.com

Разработка формата хранения данных программ и решение задач (стр. 2 из 2)

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