votsarskam
Новые
- Регистрация
- 9 Дек 2015
- Сообщения
- 23
- Реакции
- 0
- Баллы
- 0
Паскаль. Помогите сделать данную программу не используя оператора 'record'
Составить программы, с помощью которых:
- сформировать файл из записей, содержащих сведения о книге(фамилия автора, название, год издания);
- упорядочить компоненты файла так, чтобы сначала следовали все книги Петрова, а затем все остальные.
program qwertyui;
uses crt;
type book=record
fam:string[20];
naz:string[20];
god:word;
end;
var b,d,x:book;
f:file of book;
n,i,j,p:integer;
begin
clrscr;
assign(f,'book');
rewrite(f);
write('Kol-vo zapisei n=');
readln
;
for i:=1 to n do
begin
writeln('Kniga ',i);
with b do
begin
write('Famaliya: ');readln(fam);
write('Nazvanie: ');readln(naz);
write('God: ');readln(god);
end;
write(f,b);
end;
clrscr;
reset(f);
p:=0;
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,b);
if b.fam='Petrov' then{esli -}
begin
p:=p+1;{schitaem}
x:=b;{zapominaem}
for j:=i downto p do{igem nazaf}
begin
seek(f,j-1);{chitaem pred-ee chislo }
read(f,d);
seek(f,j);{vstavlyaem vpered}
write(f,d);
end;
seek(f,p-1);{vstavlyaem na mesto kotoroe nashli}
write(f,x);
end
end;
seek(f,0);
while not eof(f) do
begin
read(f,b);
with b do
writeln(fam,' ',naz,' ',god);
end;
writeln;
if p=0 then write('Knig avtora Petrova net');
close(f);
readln
end.
Составить программы, с помощью которых:
- сформировать файл из записей, содержащих сведения о книге(фамилия автора, название, год издания);
- упорядочить компоненты файла так, чтобы сначала следовали все книги Петрова, а затем все остальные.
program qwertyui;
uses crt;
type book=record
fam:string[20];
naz:string[20];
god:word;
end;
var b,d,x:book;
f:file of book;
n,i,j,p:integer;
begin
clrscr;
assign(f,'book');
rewrite(f);
write('Kol-vo zapisei n=');
readln
for i:=1 to n do
begin
writeln('Kniga ',i);
with b do
begin
write('Famaliya: ');readln(fam);
write('Nazvanie: ');readln(naz);
write('God: ');readln(god);
end;
write(f,b);
end;
clrscr;
reset(f);
p:=0;
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,b);
if b.fam='Petrov' then{esli -}
begin
p:=p+1;{schitaem}
x:=b;{zapominaem}
for j:=i downto p do{igem nazaf}
begin
seek(f,j-1);{chitaem pred-ee chislo }
read(f,d);
seek(f,j);{vstavlyaem vpered}
write(f,d);
end;
seek(f,p-1);{vstavlyaem na mesto kotoroe nashli}
write(f,x);
end
end;
seek(f,0);
while not eof(f) do
begin
read(f,b);
with b do
writeln(fam,' ',naz,' ',god);
end;
writeln;
if p=0 then write('Knig avtora Petrova net');
close(f);
readln
end.