Создать файл, который будет содержать: название книги фамилию автора год издания количество страниц. Вывести на экран список книз заданного автора кол-во страниц в которых более 300 — Pascal(Паскаль)

Program Lab_8_b;
uses tpcrt;
Type avtor=record
     famavt:string;
     nazv:string;
     god,str:integer;
end;
mas=array[1..100] of avtor;
ff=file of avtor;
var i,j,zz:integer; zap:avtor; av1,naz1:string;
f:ff; massiv1:mas; zo:char;
 
procedure vvod;
begin 
assign(f,'lab_8_b.dat'); rewrite(f);
zz:=0; i:=1;
while zz=0 do begin
with zap do begin
writeln('Nazvanie knigi');
readln(nazv);
writeln('Avtor');
readln(famavt);
writeln('God izdanija');
readln(god);
writeln('Kol-vo stranic');
readln(str);
write(f,zap);
writeln('next? y/n');
readln(zo);
if zo='n' then zz:=1;
end;
end;
close(f);
End;
 
procedure vivod;
begin
assign(f,'lab_8_b.dat');
reset(f);
i:=1;
while not eof(f) do begin
read (f,zap);
massiv1[i]:=zap;
i:=i+1;
end;
for j:=1 to (i-1) do begin
with zap do begin
writeln('zapis nomer:',j);
writeln(massiv1[j].nazv);
writeln(massiv1[j].famavt);
writeln(massiv1[j].god);
writeln(massiv1[j].str);
end;
end;
close(f);
end;
 
procedure poisk;
begin
assign(f,'lab_8_b.dat');
reset(f);
writeln('Vvedite familiyu avtora i vi uvidite spisok ego knig imejushih bolee 300 str');
readln(av1);
i:=0;
while not eof(f) do begin
read(f,zap);
with zap do begin
 if (av1=famavt) and (str>300) then begin
 writeln(nazv);
end;
end;
i:=i+1;
end;
end; 
 
Begin clrscr;
vvod;
vivod;
poisk;
readkey;
End.

Leave a Comment

95 − 93 =