Здравствуйте! Помогите пожалуйста доделать следующую процедуру(CreateList):
type
PBook= ^TBook;
TBook=record
Next:PBook;
Author:string[15];
Name:string[41];
Publish:string[7];
year:word;
pages:word;
end;
var
Book,
Beglist:Pbook;
Rel:pointer;
a:TBook;
Fbooks:file of TBook;
FI, FO:text;
procedure createlist;
begin
...
end;
procedure writelist(headline:string);
begin
rewrite(FO);
Writeln(FO);
Writeln(FO, Headline);
book:=beglist;
while book<> NIL do
begin
with book^ do
writeln(FO, Author:15, Name:41, Publish:7, Year:5, Pages:4);
book:=book^.next;
end;
close(FO);
end;
procedure SortAuthor;
var stop, first:boolean;
book1, book2:Pbook;
begin
repeat
stop:=true;
book:=beglist;
first:=true;
while book^.next <> NIL do
begin
if book^.Author > Book^.next^.Author then begin
book1:=book;
book:=book^.next;
if first then
beglist:=book
else
begin
book2:=beglist;
while book2^.next <> book1 do
book2:=book2^.next;
book2^.next:=book
end;
book1^.next :=book^.next;
book^.next:=book1;
stop:=false;
end;
first:=false;
book:=book^.next;
end;
until stop;
end;
procedure writefile;
begin
assign (Fbooks, 'z6file.txt');
rewrite(Fbooks);
book:=beglist;
while book <> NIL do
begin
write(Fbooks, Book^);
book:=book^.next;
end;
close(Fbooks);
end;
procedure readfile;
var
k:integer;
book1:Pbook;
begin
reset(FBooks);
k:=filesize(FBooks);
release(Rel);
beglist:=NIL;
while k>= 0 do
begin
book1:=book;
dec(k);
if k<0 then
break;
seek(FBooks, k);
New(book);
if beglist = NIL then
Beglist:=book
else
book1^.next:=book;
read(FBooks, Book^);
Book^.next:=NIL
end;
close(Fbooks);
end;
begin
Mark(Rel);
Createlist;
assign(FO, 'z6.res');
writelist('Spisok:');
SortAuthor;
Writelist('otsortirovannij spisok:');
Writefile;
readfile;
writelist('otsortirovano v protivopoloznom porjadke:');
release(Rel);
END.
а что этот CreateList должен делать?
Чтение из файла или из input-а? Каково условия конца ввода?
создает динамический список. (т.е. в этой процедуре тебя просят ввести инф. о книгах). Чтение из файла.
Хм. А зачем тогда procedure readfile; ?
Все проделание операции записывает в файл (сначало изначальный список(то что и надо сделать), далее отсортированный и прочтенный в противоположном порядке)
Ну какие-то идеи есть?
непонятно, что надо сделать
чтение из файла? createlist запрашивает его имя, открывает, считывает из файла записи и делает из них список?
Процедура Createlist cчитывает переменные и записывает их в динамический список. Далее остальные процедуры уже должны сохранять информацию в типизированный файл, отсортировывают список по Автору, Названию, Издателю или страницы книг, в данном случае сортировка происходит по названию автора. Также эта программа должна считывать информацию с типизированного файла в противоположном порядке и стирать звено. И наконец процедура Readfile все произведенные операции ( которые выполняли другие процедуры ) записывает в файл.
Helpppp!!
1) CreateList считывает переменные и записывает в файл(т.е. сначала вводим информацийу про автора, издателя, количество страниц в книге и т.д. , а потом все это записываем в динамический список)
2) Writelist сохраняет инф в типизированном файле.
3) SortAuthor сортирует список по названию автора.
4) Writefile считывает информацию из типизированного файла в противоположном порядке и стирает одно звено
5) Readfile все проделанные операции записывает в файл. (т.е. изначальный список, отсортированный список и прочтенный в противоположном порядке список).
Программа должна предусмотреть все эти операции.
Нужно использовать односвязанный динамический список.
Незнаю как еще более подробно я тут могу описать еще.
И так как мне эти процедуры не посредственно выдали и сказали чтобы я сделал эту процедуру CreateList, то соответственно все эти остальные процедуры верны.
Значит мой учитель начудил?
Добавлено через 2 мин.
Не хотите помогать или не знаете так и скажите.