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

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

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

> Многосвязные списки, Помощь
D1ma
сообщение 13.04.2009 20:15
Сообщение #1


Новичок
*

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

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


Всем привет.Требуется помощь в написании программы с использованием многосвязных список. Тему плохо понял, поэтому требуется помощь.
Задание: Найти короткую строку.
Сам код программы есть, требуется лишь поспотроить МС -)
 VAR
F:TEXT;
I:WORD;
C:CHAR;
N:WORD;
BEGIN
CLRSCR;
ASSIGN(F,'C:\F1.TXT');
RESET(F);
I:=0;
N:=60000;
WHILE NOT EOF(F) DO
BEGIN
IF EOLN(F) THEN
BEGIN
IF I<N THEN N:=I;
I:=0;
READ(F,C);
READ(F,C);
END;
READ(F,C);
I:=I+1;
END;
IF I<N THEN N:=I;
IF N=60000 THEN I:=0 ELSE I:=N;
WRITE('MIN = ');
WRITELN(I);

END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
D1ma
сообщение 9.06.2009 16:09
Сообщение #2


Новичок
*

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

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


Исправьте что не так smile.gif


while not eof(t) do begin
if L=nil then begin
New(L);
L1:=L {Запоминаем начало списка}
end
else begin
New(L^.Next);
L:=L^.Next {переход на след. элемент}
end;
with L^ do begin
next:=nil;{обнуляем ссылку}
s:=nil;
while not eoln(t) do with s^ do begin
if s=nil then begin
New(s);
s1:=s {Запоминаем начало подсписка}
end
else begin
New(s^.next);
s:=s^.next {переход на след. элемент}
end;
with s^ do begin
read(t,c);
next:=nil {обнуляем ссылку}
end
end;
readln(t) ; {?}
end
end;
close(t);

L:=L1;
while L<>nil do with L^ do begin
s:=s1; {Запоминаем начало подсписка}
while s<>nil do with s^ do begin
write©;
s:=Next {продвижение вперед по списку}
end;
writeln;
L:=Next {продвижение вперед по списку}
end;

b:=256;
L:=L1;
while L<>nil do with L^ do begin
i:=0;
s:=s1;
while s<>nil do with s^ do begin
case c of
#13:;
#10: begin
if i<b then b:=i;
i:=0
end
else Inc(i)
end;
s:=Next {продвижение вперед по списку}
end;
L:=Next {продвижение вперед по списку}
end;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
D1ma   Многосвязные списки   13.04.2009 20:15
volvo   Что в твоем понимании МС? Двухсвязный список? Муль...   13.04.2009 20:18
D1ma   Что в твоем понимании МС? Двухсвязный список? Мул...   13.04.2009 20:45
volvo   Что ты хочешь делать с мультисписком? Читать в нег...   13.04.2009 20:50
D1ma   Вот что получилось :) : USES CRT; CONST PATH=...   16.04.2009 14:29
D1ma   Помогите исправить процедуру MIN. Список сформиров...   27.05.2009 16:49
Krjuger   PROCEDURE MIN(A:LINK;VAR B:WORD); VAR I:WORD; ch:...   27.05.2009 17:28
D1ma   PROCEDURE MIN(A:LINK;VAR B:WORD); VAR I:WORD; ch...   27.05.2009 19:35
Krjuger   Ну у меня то eoln не для списка,а только для A^.Va...   27.05.2009 20:04
D1ma   Немного не понял, а почему именно 'enter'?   28.05.2009 19:17
Krjuger   Ну а что ты нажимаеш,когда хочеш перейти на новую ...   28.05.2009 20:35
D1ma   эх, что-то не работает... пробывал по всякому, но ...   31.05.2009 16:03
Krjuger   За вознаграждение,это уже немного в другую тему.   31.05.2009 16:06
Lapp   Krjuger, я понимаю, что - но почему ты заставляеш...   1.06.2009 8:10
D1ma   Krjuger, я понимаю, что - но почему ты заставляе...   1.06.2009 14:19
Lapp   read(A^.Val,cch); это допустимо только же для файл...   1.06.2009 14:30
D1ma   Да, конечно. То есть, ты имеешь в виду, что в к...   1.06.2009 16:04
Lapp   Ну получается что только один символ, т.к. char, п...   1.06.2009 18:29
D1ma   Сдается мне, что ты и не пытался уточнить.. Ладн...   1.06.2009 19:15
Lapp   последняя строка символов не проверяется на длину,...   1.06.2009 20:13
Lapp   Нет, погоди, так снова неправильно. Дай минутку. ...   1.06.2009 20:27
Krjuger   Действительно,зачем ты тип данных в списке сменил?...   1.06.2009 13:18
Krjuger   В общем я сделал для типа строка,но сразу говорю с...   1.06.2009 17:13
Krjuger   вот тебе немног другая реализация,но как я и говри...   1.06.2009 20:11
Krjuger   УУУУууу.....молись,в прошлый раз volvo конкурс ус...   1.06.2009 20:16
D1ma   в общем, оказалось что это вовсе не многосвязный ...   4.06.2009 18:53
D1ma   Блин... В чем ошибка?   6.06.2009 7:17
D1ma   Решил сначала попробывать с использованием типа ST...   6.06.2009 18:35
D1ma   Решил попробывать вот так: while s<>nil do ...   6.06.2009 20:08
Lapp   Я довольно много поменял тут.. Разберешься? type...   6.06.2009 20:21
D1ma   Спасибо!!! :) Плохо разобрался токо, ...   8.06.2009 16:01
Lapp   немогли бы написать действие след. операторов?Ты л...   8.06.2009 19:35
D1ma   Исправьте что не так :) while not eof(t) d...   9.06.2009 16:09
Krjuger   Ну а ты скажи,что не так и тебе исправят..Где ошиб...   10.06.2009 13:54


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

 



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