Program tip;
const
n=20;
type
knigi = record
fam, io, nazv_kn : string[20] ;
udk: real;
god_izd, kol : integer;
end;
var
f: file of knigi;
kn: knigi;
vybor: byte;
temp:knigi;
i,j:integer;
begin
write('1- создать новый, 0 - открыть');readln(vybor);
assign(f,'имя_файла.dat');
if vybor <>0 then
begin
{создать новый файл}
rewrite(f);
writeln('Введите данные о книге');
writeln('-----------------------------');
for i:=1 to n do
begin
with kn do begin
writeln(' Введите номер УДК ');
readln(n_UDK);
writeln('Введите Фамилию');
readln(fam);
writeln(' Введите Иницалы автора ');
readln(io);
writeln('Введите название книги');
readln(nazv_kn);
writeln('Введите год издания');
readln(god_izd);
writeln('Введите кол-во экземпляров данной книги');
readln(kol);
end;
write(f,kn);
end;
close(f);
end;
reset(f);
if kn.kol > 3 then
for i:=2 to n do
for j:=n downto i do
if kn[j-1].nazv_kn > mass[j].nazv_kn then begin
temp:=kn[j-1];
kn[j-1]:=kn[j];
kn[j]:=temp;
end;
for i:=1 to n do
writeln (kn.nazv_kn);
end;
readln;
end.
Типиз. файл
Создание и обработку файла оформить в виде подпрограмм.
Код:
какие тут ошибки ?
И как оформить с помощью процедур ?
Program tip;
type
knigi = record
fam, io, nazv_kn : string[20] ;
udk: real;
god_izd, kol : integer;
end;
var
f: file of knigi;
kn:array[1..100] of knigi;
vybor: byte;
temp:knigi;
i,j:integer;
n:integer;
procedure create_file;
var vibor:byte;
begin
rewrite(f);
writeln('Введите данные о книге');
writeln('-----------------------------');
vibor:=1;
n:=0;
while vibor=1 do
begin
inc(n);
with kn[n] do begin
writeln(' Введите номер УДК ');
readln(udk);
writeln('Введите Фамилию');
readln(fam);
writeln(' Введите Иницалы автора ');
readln(io);
writeln('Введите название книги');
readln(nazv_kn);
writeln('Введите год издания');
readln(god_izd);
writeln('Введите кол-во экземпляров данной книги');
readln(kol);
writeln('1 - continue; 0-exit'); readln(vibor);
end;
write(f,kn[n]);
end;
close(f);
end;
procedure read_file;
var i,j,k:integer;
begin
reset(f);
n:=0;
while not eof(f) do
begin
read(f,temp);
if temp.kol>3 then begin inc(n); kn[n]:=temp; end;
end;
for i:=1 to n do
begin
for j:=i+1 to n do
begin
k:=1;
while (k<=length(kn.nazv_kn[k])) and (k<=length(kn[j].nazv_kn[k])) and (kn.nazv_kn[k]=kn[j].nazv_kn[k]) do inc(k);
if kn.nazv_kn[k]>kn[j].nazv_kn[k] then
begin
temp:=kn; kn:=kn[j]; kn[j]:=temp;
end;
end;
end;
for i:=1 to n do writeln(kn.nazv_kn);
close(f);
end;
begin
assign(f,'new.dat');
writeln('1- создать новый, 2 - открыть, 0-exit');
readln(vybor);
while vybor<>0 do
begin
if vybor=1 then create_file else read_file;
writeln('1- создать новый, 2 - открыть, 0-exit');
readln(vybor);
end;
end.