program 5;

const n=100;
type
Tdat=record
Famil: string[30];
Resul: real;
end;
Tmas=array[1..n] of Tdat;
Tf=file of Tdat;

{создание файла записей}

procedure CrtFile(var namef: string;
k: integer; var mas1: Tmas);
var
i: integer;
f: Tf;
begin
Assignfile(f, namef); Rewrite(f);
writeln('введите данные студентов');
for i:=1 to k do
begin
readln(mas1[i].Famil);
readln(mas1[i].Resul);
write(f, mas1[i]);
end;
Closefile(f);
end;

{составление списка и его сортировка}

procedure List(var namef: string;
k: integer; var cnt: integer;
var mas1,mas2: Tmas);
var
i,j: integer;
buf: Tdat;
g: Tf;
begin
Assignfile(g, namef); Reset(g);
cnt:=1;
for i:=1 to k do
begin
if mas1[i].Resul < 60 then
begin
mas2[cnt]:=mas1[i];
inc(cnt);
end;
end;
Closefile(g);
for i:=1 to cnt-1 do
for j:=i+1 to cnt do
if mas2[i+1].Famil < mas2[i].Famil then
begin
buf:=mas2[i+1];
mas2[i+1]:=mas2[i];
mas2[i]:=buf;
end;
end;
{вывод списка}
procedure OutDat(var mas2: Tmas;
var cnt: integer);
var
i: integer;
begin
writeln('студенты с ретингом < 60 баллов');
for i:=1 to cnt do
begin
writeln(mas2[i].Famil,' ',mas2[i].Resul);
end;
end;

{основная программа}
VAR
namef: string;
k,count: integer;
mas1, mas2: Tmas;
f: Tf;
BEGIN
namef:='D:\base.dat';
writeln('введите кол-во студентов');
readln(K);
CrtFile(namef,k,mas1);
List(namef,k,count,mas1,mas2);
OutDat(mas2,count);
readln
END.

Случайные файлы

Файл
student.txt
Kinematika.txt
info.txt
Readme.txt
UKAZWORD.TXT




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.