Program Lab_9;
uses crt;
const name='data.txt';
header='result.txt';
type student=record
fam,name,group:string[20];
year:integer;
sr:real;
end;
ar=array[1..100]of student;
procedure input_from_file(var f:text;var a:ar;var n:integer);
var st:string;
kod:integer;
begin
assign(f,name);
reset(f);
n:=0;
while not eof(f) do
begin
n:=n+1;
readln(f,st);
with a[n] do
begin
fam:=copy(st,1,pos(' ',st)-1);
delete(st,1,pos(' ',st));
name:=copy(st,1,pos(' ',st)-1);
delete(st,1,pos(' ',st));
group:=copy(st,1,pos(' ',st)-1);
delete(st,1,pos(' ',st));
val(copy(st,1,pos(' ',st)-1), year, kod);
delete(st,1,pos(' ',st));
val(st,sr,kod);
end;
end;
close(f);
End;
procedure output_to_file(var f:text;st:string;a:ar;n:integer);
var i:integer;
begin
assign(f,header);
{$I-}append(f);{$I+}
if IOResult<>0 then rewrite(f);
writeln(f);
writeln(f,st);
writeln(f,'|---------------------------------------');
writeln(f,'| Familia |Imya | Gruppa | G.R. | S.P. |');
writeln(f,'|---------------------------------------');
for i:=1 to n do
with a[i] do
begin
writeln(f,'|', fam:11,'|',name:9,'|',group:10,'|',year:6,'|',sr:6:1,'|');
writeln(f,'|-------------------------------------');
writeln(f);
end;
close(f);
end;
procedure obmen(var a,b:student);
var r:student;
begin
r:=a; a:=b; b:=r;
End;
procedure sort_choice(var m:ar;n:integer);
var k,i,j:integer;
begin
for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if m[k].name>m[j].name then k:=j;
obmen(m[k],m[i]);
end;
end;
var a:ar;
i,n:integer;
f,g:text;
begin
clrscr;
input_from_file(f,a,n);
output_to_file(g,'Ishodnyj massiv:',a,n);
sort_choice(a,n);
output_to_file(g,'Posle sortirovki vyborom:',a,n);
writeln('Данные записаны в файл ',header);
readkey;
end.
Файл данных
Vasilev Gena EK-09-1 1992 74.9
Andropov Ivan EK-09-1 1992 86.6
Andov Anton EK-09-1 1992 86.6
Andeev Victor EK-09-1 1992 86.6
Andropo Andrey EK-09-1 1992 86.6