Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2011, 14:57   #1
molekyla
 
Регистрация: 19.02.2011
Сообщений: 5
По умолчанию Список (динамические структуры), выведение на экран

Суть задачи: нужно создать список целых чисел и вывести на экран. Вот никак не могу понять как вывести список на экран (или я неправильно создаю его).
Код:
type TData = Integer;
       TPElement = ^TElement;
       TElement = record
                    Data : TData;
                    Next : TPElement;
                  end;
var a:TPElement; b:Integer;
begin
      repeat
        New(a);
        Readln(b);
        a^.Data:=b;
        a:=a^.Next;
      until b=0;

      repeat
        writeln(a^.data,' ');
        a:=a^.Next;
      until a.Next=nil;

      Readln;
end.
molekyla вне форума Ответить с цитированием
Старый 20.03.2011, 16:34   #2
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Код:
procedure ListCont.Print_forward(start:PList); //процедра печати элементов с первого(начало)
begin
 if start=nil then writeln('List not init')
 else
 begin
 while (start<>nil) do
  begin
   write(start^.inf,' ');
   start:=start^.next;
  end;
 end;
end;
примерно так
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 20.03.2011, 17:19   #3
molekyla
 
Регистрация: 19.02.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Sparky Посмотреть сообщение
Код:
procedure ListCont.Print_forward(start:PList); //процедра печати элементов с первого(начало)
begin
 if start=nil then writeln('List not init')
 else
 begin
 while (start<>nil) do
  begin
   write(start^.inf,' ');
   start:=start^.next;
  end;
 end;
end;
насколько я понимаю то эта процедура ничем не отличается от этой
Код:
repeat
  writeln(a^.data,' ');
  a:=a^.Next;
until a.Next=nil;
где то не тут брешь в моей проге...
Но всеравно спасибо за помощь, натолкнулся на решение в методичке. Может кто то знает что не так. Если откомпилировать даный код то зацикливается программа и в результате выводит одни нули. Впрочем это не так уж и важно, думаю со временем само дойдет.
*ушел писать строчки кода*
molekyla вне форума Ответить с цитированием
Старый 20.03.2011, 17:36   #4
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

ошибка в создании списка, теряется связь с последующими элементами
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 21.03.2011, 09:14   #5
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

1.В списке элемент указывает на каждый следующий, а не сам на себя.
Цитата:
Код:
repeat
        New(a);
        Readln(b);
        a^.Data:=b;
        a:=a^.Next;
      until b=0;
2.FIFO(first in first out), вы не указали указатель на первый элемент списка.
Цитата:
Код:
repeat
        writeln(a^.data,' ');
        a:=a^.Next;
      until a.Next=nil;
Код:
var a, p, first:TPElement; b:Integer;
begin
      new(a);
      readln(b);
      a^.Data:=b;
      a^.Next := nil;
      p := a;
      first := a;
      while (b <> 0) do
      begin
        New(a);
        Readln(b);
        a^.Data := b;
        p^.Next := a;
        a^.Next := nil;
        p := a;
      end;
      repeat
        writeln(first^.data,' ');
        first:=first^.Next;
      until first.Next=nil;

      Readln;
end.

Последний раз редактировалось Летучий_СкилетиК; 21.03.2011 в 09:17.
Летучий_СкилетиК вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические структуры mego4el Помощь студентам 4 13.02.2011 00:30
Динамические структуры в С++ Aleksa_ks Помощь студентам 0 04.05.2010 21:50
Динамические структуры!!!! Oooooleg Помощь студентам 4 22.05.2009 14:15
Динамические структуры (линейный список). Си Zaya007 Помощь студентам 4 12.03.2009 18:14