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

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

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

> Список построенный из элементов файла, Описать функцию, значением которой есть этот список
сообщение
Сообщение #1


Новичок
*

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

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


Задание:
Цитата
type TE = <любой_тип>;
ff = file of TE;
список =^ звено;
звено = record
элемент: TE;
следующий: список;
end;
Описать функцию, значением которой есть список, построенный из элементов файла.


Моя программа:
uses	crt;
type TE = char;
ff = file of TE;
list =^ link;
link = record
element: TE;
next: list;
end;
var fname: string[79];
f: ff;
ch: TE;
l: list;

function flist(var f: ff): list;
var l, p, q: list;
x: TE;
begin
new(l);
read(f,x);
l^.element := x;
p := l;
while not eof(f) do begin
read(f,x);
new(q);
q^.element := x;
p^.next := q;
p := q
end;
p^.next := nil;
flist := l
end;

begin
clrscr;
write('Введите имя файла: ');
readln(fname);
assign(f,fname);
{I-}
reset(f);
{I+}
if IOResult <> 0 then begin
writeln('Введите текст:');
rewrite(f);
repeat
read(ch);
write(f,ch)
until ch = #10;
close(f);
reset(f)
end;
l := flist(f);
writeln('Элементы списка:');
while l <> nil do begin
write(l^.element);
l := l^.next
end;
readkey
end.


Как переделать функцию flist, чтоб не вылетала с ошибкой при пустом файле?

И еще вопрос, как лучше сделать ввод элементов списка.
При until ch = #10 в конец записывается символ \n, при until ch = #13 - \r, а они мне не нужны.
Или сделать тип элемента списка integer что ли, да вводить в цикле for, перед этим получив их количество...

Сообщение отредактировано: AlexSun -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 7.05.2024 22:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name