| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Создение двусвязного списка |
| Автор: Маша 20.5.2007, 16:34 |
| Помогите пожалуйста найти ошибку в коде. Нужно создать двухсвязный список 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; |
| Автор: Misha_White 20.5.2007, 17:08 |
| Маша, Что такое link? |
| Автор: Маша 20.5.2007, 17:10 |
| link=^rec; rec=record inf:integer; next,pred:link; end; |
| Автор: Misha_White 20.5.2007, 17:13 |
| Маша, Используй подсветку кода... Добавлено через 2 минуты и 30 секунд Маша, Во первых, чему равно n? Этот цикл бесконечный... |
| Автор: vvv_1984 20.5.2007, 17:22 |
| 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 |
| Автор: Маша 20.5.2007, 17:25 |
| Misha_White,Там в конце цикла while спрашивается, чему равно n. Какую подсветку? Добавлено через 2 минуты и 23 секунды vvv_1984, спасибо! P.s. просто список двусвязный, и надо чтобы был указатель и на начало, и на конец |
| Автор: vvv_1984 20.5.2007, 17:28 |
| эту процедуру и вставляй в свой while, и создавай список, при каждом вызове процедуры будет добавляться один элемент. Добавлено через 39 секунд щас пару минут!!! |
| Автор: Misha_White 20.5.2007, 17:35 | ||
| Маша, Где? Подсветку кода... Например:
|
| Автор: vvv_1984 20.5.2007, 17:35 |
| 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; |
| Автор: Misha_White 20.5.2007, 17:38 |
| Маша, 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; |
| Автор: vvv_1984 20.5.2007, 17:38 |
| вот в принципе код который возвращает последний список! |
| Автор: Маша 20.5.2007, 17:39 | ||
В данном коде я ее случайно забыла написать, но она там предполагается. |
| Автор: vvv_1984 20.5.2007, 17:40 |
| Misha_White, ну я не компилировал, не проверял на ошибки я просто по памяти написал, алгоритм то верный!!!!!!!!!! |
| Автор: Misha_White 20.5.2007, 17:41 |
| Маша, Есть целиком исходник такой проги... |
| Автор: vvv_1984 20.5.2007, 17:41 |
| Маша, а задание то какое конкретнее!!!! исходник выкладывай! |
| Автор: Маша 20.5.2007, 17:43 |
| Misha_White, Скинь пожалуйста!!! |
| Автор: vvv_1984 20.5.2007, 17:44 |
| я что то не догоняю, у меня сейчас 18:44, а в сообщениях пишется 15, наверное заработался!!!!!!!! |
| Автор: Маша 20.5.2007, 17:46 |
| Misha_White, выложи пожалуйста!!! |
| Автор: Misha_White 20.5.2007, 17:46 |
| vvv_1984, А у меня ваще 00:45... |
| Автор: Маша 20.5.2007, 17:46 |
| vvv_1984, у меня тоже так |
| Автор: vvv_1984 20.5.2007, 17:47 | ||
а реально? Добавлено через 1 минуту и 7 секунд ладненько МАША так что, этого хватает? |
| Автор: Misha_White 20.5.2007, 17:48 |
| Маша, |
| Автор: Misha_White 20.5.2007, 17:49 |
| Еще Добавлено через 1 минуту и 2 секунды vvv_1984, А почему нет? Спать пора мне... Добавлено через 1 минуту и 51 секунду Маша, vvv_1984, В своих настройках посмотрите регион... |
| Автор: Маша 20.5.2007, 17:51 |
| Misha_White, он у меня почему-то не открывается... |
| Автор: Misha_White 20.5.2007, 17:51 |
| Маша, Второй файл скачай... Добавлено через 1 минуту и 25 секунд Маша, Я ее не заводил, но должна работать... Там один модуль и главная программа... Добавлено через 3 минуты и 45 секунд Маша, Ну как, работает? |
| Автор: Маша 20.5.2007, 17:55 |
| Misha_White,что с модулем делать? |
| Автор: Misha_White 20.5.2007, 18:00 |
| Маша, В смысле? Откомпилируй по F9, затем прогу запускай... |
| Автор: Маша 20.5.2007, 18:05 |
| Выдает ошибку 131 полсе процедуры ввода |
| Автор: Misha_White 20.5.2007, 18:10 | ||
| Маша, АААА... Там у процедуры Vvod убери скобки внесте с содержимым...
Добавлено через 25 секунд Маша, В модуле... Добавлено через 4 минуты и 45 секунд Маша, Работает... Закидывает в список квадрат порядкового номера элемента списка... Добавлено через 5 минут и 30 секунд Маша, У тебя-то какое задание? |
| Автор: Маша 20.5.2007, 18:29 |
| Misha_White, теперь он выдает ошибку на vvod в самой программе Добавлено через 21 секунду Misha_White, теперь он выдает ошибку на vvod в самой программе Добавлено через 2 минуты и 22 секунды Задание - создать двусвязный список, вставить туда элемент, удалить, поменять 2 элемента местами, отсортировать |
| Автор: Misha_White 20.5.2007, 18:33 |
| Маша, Странно... у меня работает... А там скобки есть? Если да, то удали... Добавлено через 3 минуты и 4 секунды Маша, Есть лучший вариант... |
| Автор: Misha_White 20.5.2007, 18:37 |
| Маша, |
| Автор: Маша 20.5.2007, 18:44 |
| Misha_White, спасибо, теперь работает |
| Автор: KuZyagroup 21.5.2007, 05:24 |
| Вот ещё один пример решения. Обертка чуть-чуть не работает (не последняя версия проги) но списки работают хорошо и код прозрачный. Может чем поможет. |