Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создение двусвязного списка, помогите найти ошибку 
:(
    Опции темы
Маша
Дата 20.5.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.1.2007

Репутация: нет
Всего: нет



Помогите пожалуйста найти ошибку в коде. Нужно создать двухсвязный список

procedure list(var start,finish:link);
var p,q:link;
begin
while n<>0 do
begin
new(p);
readln(p^.inf);
p^.pred:=nil;
if start=nil then
begin
start:=p; kon:=p;
p^.next:=nil;
end
else
begin
p^.next:=start;
start^.pred:=p;
start:=p;
end;

end;


end;
PM MAIL   Вверх
Misha_White
Дата 20.5.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: нет
Всего: 1



Маша
Цитата(Маша @  20.5.2007,  23:34 Найти цитируемый пост)
procedure list(var start,finish:link);

Что такое link?
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
Маша
Дата 20.5.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.1.2007

Репутация: нет
Всего: нет



link=^rec;
rec=record
inf:integer;
next,pred:link;
end;
PM MAIL   Вверх
Misha_White
Дата 20.5.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: нет
Всего: 1



Маша
 smile 
Используй подсветку кода...

Добавлено через 2 минуты и 30 секунд
Маша
Цитата(Маша @  20.5.2007,  23:34 Найти цитируемый пост)
while n<>0 do

Во первых, чему равно n?
Этот цикл бесконечный...
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
vvv_1984
Дата 20.5.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



procedure list(var start,finish:link);
var  get,next:link;
begin
if start<>nil then
   begin
      new(get);
      readln(get^.inf);
      next:=start^.next;
      start^.next:=get;
      get^.prev:=start;
      next^.prev:=get;
      get^.next:=next;
   end
else
   begin
      new(get);
      readln(get^.inf);
      start:=get;
   end;


а зачем finish он в принципе не нужен , ведь все изменения остаются в переменной start
PM MAIL   Вверх
Маша
Дата 20.5.2007, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.1.2007

Репутация: нет
Всего: нет



Misha_White,Там в конце цикла while спрашивается, чему равно n. 
Какую подсветку?

Добавлено через 2 минуты и 23 секунды
vvv_1984, спасибо!

P.s. просто список двусвязный, и надо чтобы был указатель и на начало, и на конец
PM MAIL   Вверх
vvv_1984
Дата 20.5.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



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

Добавлено через 39 секунд
щас пару минут!!!
PM MAIL   Вверх
Misha_White
Дата 20.5.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: нет
Всего: 1



Маша

Цитата(Маша @  21.5.2007,  00:25 Найти цитируемый пост)
Misha_White,Там в конце цикла while спрашивается, чему равно n

Где?

Цитата(Маша @  21.5.2007,  00:25 Найти цитируемый пост)
Какую подсветку?

Подсветку кода...
Например:
Код

link=^rec;
rec=record
inf:integer;
next,pred:link;
end; 


--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
vvv_1984
Дата 20.5.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



function finish_link(var start:link):link;
   var
     get:link;
   begin
     get:=start;
     if get=nil then exit;
     while  get^.next<>nil do
        get:=get^.next;
     finish:=get;

   end;
PM MAIL   Вверх
Misha_White
Дата 20.5.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: нет
Всего: 1



Маша
Procedure PutOne (a:integer; Old:Link; var P:link);
     {Процедура,которая позволяет создать список,состоящий из элементов,
         следующих друг за другом }
     begin
       P:=New(Link); {Функция,которая создает новую динамическую }
                     {переменную и устанавливает на нее указатель}
       Old^.Next:=P;
       P^.inf:=a;
       P^.Next:=nil;
       P^.Prev:=Old;
       Old:=P;
     end;


Это сообщение отредактировал(а) Misha_White - 20.5.2007, 17:39
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
vvv_1984
Дата 20.5.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



вот в принципе код который возвращает последний список!
PM MAIL   Вверх
Маша
Дата 20.5.2007, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.1.2007

Репутация: нет
Всего: нет



Цитата

Цитата(Маша @  21.5.2007,  00:25 ) 
Misha_White,Там в конце цикла while спрашивается, чему равно n 


Где?



В данном коде я ее случайно забыла написать, но она там предполагается. 
PM MAIL   Вверх
vvv_1984
Дата 20.5.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Misha_White,
ну я не компилировал,
не проверял на ошибки я просто по памяти написал, алгоритм то верный!!!!!!!!!!
PM MAIL   Вверх
Misha_White
Дата 20.5.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 25.4.2007
Где: Кодинск

Репутация: нет
Всего: 1



Маша
Есть целиком исходник такой проги...
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
vvv_1984
Дата 20.5.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Маша,
а задание то какое конкретнее!!!!
исходник выкладывай!

Это сообщение отредактировал(а) vvv_1984 - 20.5.2007, 17:43
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1146 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.