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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Задача на списки, Создание из файла списка
-=Считывающий=-
сообщение 22.10.2006 13:39
Сообщение #21


Новичок
*

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

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


так... получилось что-то такое) ну и (кто бы сомневался)))) что-то не так) Не посмотрите?....Прикрепленный файл  TEST02.PAS ( 4.24 килобайт ) Кол-во скачиваний: 367


Сообщение отредактировано: -=Считывающий=- - 22.10.2006 13:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 22.10.2006 13:46
Сообщение #22


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

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

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


у меня не выводит вообще ничего при выборе 2 пункта (1 работает, вроде).
так и должно быть?


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


Новичок
*

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

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


вот в том-то и дело)) не посмотришь что не так?...плз give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.10.2006 14:27
Сообщение #24


Гость






Во-первых, ты неправильно делаешь проверку... Я бы делал так:
Procedure Proverka(buf:string;var flag:boolean);
Var bufHead:NSl;
Begin
bufHead:=Head;
flag:=false;
While bufHead<>nil do
Begin
If bufHead^.Sname=buf
Then
begin
flag:=true;
end;
bufHead:=bufHead^.Next; { <--- Это надо делать ВСЕГДА, иначе очень возможно зацикливание }
end;
End;
(зачем менять глобальную переменную дважды, если можно один раз поменять локальную?)

Второе - печать списка, совершенно аналогично, не меняй глобальные переменные (ими вообще лучше не пользоваться, но это - отдельная тема для разговора):
Procedure PrintSl(Sl:NSl);
Var
i, n:integer;
p: nsl;
Begin
p:=Sl;
While (p<>nil) do
Begin
writeln(p^.Sname,' ',p^.Kol);
p:=p^.Next;
end;
end;
(естественно, что вызывать печать списка в главном Case придется по-другому:
2: PrintSl(Head);
)

Ну, и самое главное, ты неправильно конструируешь список... Прежде всего, при инициализации нового элемента, его Next нужно об-Nil-ить:
Procedure NewSl(var Sl:NSl);
Begin
New(Sl);
sl^.next := nil; { <--- Вот тут !!! }
If Head=nil then
Begin
Head:=Sl;
{ Tail:=Sl; } { <--- Это - одинаковое для обеих веток действие, выносим ПОД If }
end
else
begin
Tail^.Next:=Sl;
{ Tail:=Sl; } { <--- Это - одинаковое для обеих веток действие, выносим ПОД If }
end;

Tail := Sl;
End;
Ну, и основная ошибка - ты зачем меняешь Head^? Не проще ли сделать так:

       If flag=false then
Begin
NewSl(Sl);
sl^.Sname:=St_Otv1; { Зачем-то ты же инициализировал Sl, правда? }
sl^.Kol:=1;
end
?
 К началу страницы 
+ Ответить 
-=Считывающий=-
сообщение 22.10.2006 18:18
Сообщение #25


Новичок
*

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

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


Спасибо огромное! Понял, исправлю! Вы очень помогли, если бы не Вы, незнаю чтобы я делал, правда! Спасибо! give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 22.10.2006 19:12
Сообщение #26


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

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

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


Цитата(volvo @ 22.10.2006 15:27) *
       If flag=false then 

ты чего? blink.gif


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


Гость






Цитата
ты чего? blink.gif
Это не я, я ж не перерабатывал программу полностью (если бы с нуля делать, я бы сделал совершенно по-другому), как у автора было - так и оставил. На правильность ЭТО не влияет smile.gif
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 23.10.2006 12:59
Сообщение #28


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

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

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


Цитата(volvo @ 22.10.2006 20:25) *

Это не я, я ж не перерабатывал программу полностью (если бы с нуля делать, я бы сделал совершенно по-другому), как у автора было - так и оставил. На правильность ЭТО не влияет smile.gif

Если не секрет - как по-другому?
Точнее, изменения были бы на уровне составления словесного алгоритма или на уровне перевода его в код?


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


Гость






На уровне кодирования. В частности, я бы не стал никогда отдельно (в процедуре) выделять место под элемент в списке, и ВНЕ процедуры заполнять этот элемент данными... Я бы передавал в процедуру сами данные и на месте сразу "выделил память/заполнил ее"

Опять же глобальные переменные - больной вопрос. Я бы не использовал...
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 23.10.2006 13:51
Сообщение #30


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

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

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


ясно smile.gif
я думала, какие-то оптимизации именно по алгоритму...


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

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

 



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