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.
compiler
8.05.2008 19:40
а что этот CreateList должен делать? Чтение из файла или из input-а? Каково условия конца ввода?
Brad Bellick
8.05.2008 21:02
создает динамический список. (т.е. в этой процедуре тебя просят ввести инф. о книгах). Чтение из файла.
klem4
8.05.2008 21:19
Хм. А зачем тогда procedure readfile; ?
Brad Bellick
9.05.2008 0:04
Все проделание операции записывает в файл (сначало изначальный список(то что и надо сделать), далее отсортированный и прочтенный в противоположном порядке)
Brad Bellick
10.05.2008 16:05
Ну какие-то идеи есть?
мисс_граффити
11.05.2008 2:35
непонятно, что надо сделать чтение из файла? createlist запрашивает его имя, открывает, считывает из файла записи и делает из них список?
Brad Bellick
11.05.2008 12:11
Процедура Createlist cчитывает переменные и записывает их в динамический список. Далее остальные процедуры уже должны сохранять информацию в типизированный файл, отсортировывают список по Автору, Названию, Издателю или страницы книг, в данном случае сортировка происходит по названию автора. Также эта программа должна считывать информацию с типизированного файла в противоположном порядке и стирать звено. И наконец процедура Readfile все произведенные операции ( которые выполняли другие процедуры ) записывает в файл.
Brad Bellick
11.05.2008 16:48
Helpppp!!
compiler
11.05.2008 17:07
Цитата(Brad Bellick @ 11.05.2008 12:11)
И наконец процедура Readfile все произведенные операции записывает в файл.
хм... ты уверен что через read(FBooks, Book^) можна что-либо записать в файл? и если так, то зачем writelist? или тебе нужны отдельно функции для работы с типизированными/текстовыми файлами? в общем не плохо бы увидеть задание, а то телепаты в отпуске)
Brad Bellick
11.05.2008 17:40
1) CreateList считывает переменные и записывает в файл(т.е. сначала вводим информацийу про автора, издателя, количество страниц в книге и т.д. , а потом все это записываем в динамический список) 2) Writelist сохраняет инф в типизированном файле. 3) SortAuthor сортирует список по названию автора. 4) Writefile считывает информацию из типизированного файла в противоположном порядке и стирает одно звено 5) Readfile все проделанные операции записывает в файл. (т.е. изначальный список, отсортированный список и прочтенный в противоположном порядке список).
Программа должна предусмотреть все эти операции.
Нужно использовать односвязанный динамический список.
Незнаю как еще более подробно я тут могу описать еще.
И так как мне эти процедуры не посредственно выдали и сказали чтобы я сделал эту процедуру CreateList, то соответственно все эти остальные процедуры верны.
volvo
11.05.2008 17:53
Цитата
соответственно все эти остальные процедуры верны.
Вот значит тот, кто это сказал, пускай и пишет недостающую процедуру. А здесь бредом не занимаются...
Brad Bellick
11.05.2008 18:10
Значит мой учитель начудил?
Добавлено через 2 мин. Не хотите помогать или не знаете так и скажите.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.