IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Динамические структуры, помогите дополнить
Brad Bellick
сообщение 8.05.2008 19:19
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Здравствуйте! Помогите пожалуйста доделать следующую процедуру(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.





















 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 8.05.2008 19:40
Сообщение #2


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


а что этот CreateList должен делать?
Чтение из файла или из input-а? Каково условия конца ввода?


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 8.05.2008 21:02
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


создает динамический список. (т.е. в этой процедуре тебя просят ввести инф. о книгах). Чтение из файла.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 8.05.2008 21:19
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Хм. А зачем тогда procedure readfile; ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 9.05.2008 0:04
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Все проделание операции записывает в файл (сначало изначальный список(то что и надо сделать), далее отсортированный и прочтенный в противоположном порядке)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 10.05.2008 16:05
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Ну какие-то идеи есть?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 11.05.2008 2:35
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


непонятно, что надо сделать
чтение из файла? createlist запрашивает его имя, открывает, считывает из файла записи и делает из них список?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 11.05.2008 12:11
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Процедура Createlist cчитывает переменные и записывает их в динамический список. Далее остальные процедуры уже должны сохранять информацию в типизированный файл, отсортировывают список по Автору, Названию, Издателю или страницы книг, в данном случае сортировка происходит по названию автора. Также эта программа должна считывать информацию с типизированного файла в противоположном порядке и стирать звено. И наконец процедура Readfile все произведенные операции ( которые выполняли другие процедуры ) записывает в файл.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 11.05.2008 16:48
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Helpppp!! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 11.05.2008 17:07
Сообщение #10


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Brad Bellick @ 11.05.2008 12:11) *
И наконец процедура Readfile все произведенные операции записывает в файл.
хм... ты уверен что через read(FBooks, Book^) можна что-либо записать в файл? и если так, то зачем writelist? или тебе нужны отдельно функции для работы с типизированными/текстовыми файлами? в общем не плохо бы увидеть задание, а то телепаты в отпуске)

Сообщение отредактировано: compiler - 11.05.2008 17:08


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 11.05.2008 17:40
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


1) CreateList считывает переменные и записывает в файл(т.е. сначала вводим информацийу про автора, издателя, количество страниц в книге и т.д. , а потом все это записываем в динамический список)
2) Writelist сохраняет инф в типизированном файле.
3) SortAuthor сортирует список по названию автора.
4) Writefile считывает информацию из типизированного файла в противоположном порядке и стирает одно звено
5) Readfile все проделанные операции записывает в файл. (т.е. изначальный список, отсортированный список и прочтенный в противоположном порядке список).

Программа должна предусмотреть все эти операции.

Нужно использовать односвязанный динамический список.


Незнаю как еще более подробно я тут могу описать еще.

И так как мне эти процедуры не посредственно выдали и сказали чтобы я сделал эту процедуру CreateList, то соответственно все эти остальные процедуры верны.

Сообщение отредактировано: Brad Bellick - 11.05.2008 17:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.05.2008 17:53
Сообщение #12


Гость






Цитата
соответственно все эти остальные процедуры верны.
Вот значит тот, кто это сказал, пускай и пишет недостающую процедуру. А здесь бредом не занимаются...
 К началу страницы 
+ Ответить 
Brad Bellick
сообщение 11.05.2008 18:10
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Bellick

Репутация: -  0  +


Значит мой учитель начудил?

Добавлено через 2 мин.
Не хотите помогать или не знаете так и скажите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"