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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 23:59   #1
_DEADMAN
Новичок
Джуниор
 
Регистрация: 01.06.2012
Сообщений: 3
По умолчанию Работа со стеком. Добавление, удаление элемента.

Доброго времени суток.

Программа совсем простая - добавить и удалить элемент из стека. Стек описан как класс в отдельном юните.

Код HTML:
unit UnitStack;

interface

type
   ptr = ^ZapStack;
   ZapStack = record
      inf : Integer;
      next : ptr;
   end;{ZapStack}

   Stack = class(Tobject)
      head, box : ptr;

      constructor create;
      procedure Add(data : Integer);
      procedure Read(var data : Integer);
      function GetHead : Integer;
   end;{Stack}

implementation

{ Stack }

constructor Stack.create;
begin
  inherited create;
  head := nil;
end;

procedure Stack.Add(data: Integer);
begin
  New(box);
  box^.inf := data;
  box^.next := head;
  head := box;
end;



procedure Stack.Read(var data : Integer);
begin
  if head <> nil then
  begin
     data := head^.inf;
     box := head;
     head := head^.next;
     dispose(box);
  end;
end;

function Stack.GetHead: Integer;
begin
  if head = nil then
     GetHead := 0
  else
     GetHead := 1;
end;

end.
Программа компилируется и запускается. Но при попытке добавить первый элемент, вылетает и отсылает в конструктор. Вот скрин ошибки.
Помогите пожалуйста разобраться.
Изображения
Тип файла: jpg Snap1.jpg (161.5 Кб, 123 просмотров)
_DEADMAN вне форума Ответить с цитированием
Старый 02.06.2012, 00:08   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

походу экземпляр класса Stack не создан, покажите код создания
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 00:19   #3
_DEADMAN
Новичок
Джуниор
 
Регистрация: 01.06.2012
Сообщений: 3
По умолчанию

При нажатии Добавить

Код HTML:
uses
   UnitStack;

var
   TStack : Stack;

procedure TForm1.Button1Click(Sender: TObject);
var
   a : Integer;
begin
   try
      a := StrToInt(Edit1.Text);
   except
       on Exception : EConvertError do
      ShowMessage(Exception.Message);
   end;

   TStack.create;
   TStack.Add(a);
end;
_DEADMAN вне форума Ответить с цитированием
Старый 02.06.2012, 00:27   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

а должно быть так:

Код:
TStack := Stack.Create();
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 02.06.2012, 00:30   #5
_DEADMAN
Новичок
Джуниор
 
Регистрация: 01.06.2012
Сообщений: 3
По умолчанию

аааааййй...точно...
всё пора спать))

Большое спасибо!!!
_DEADMAN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с бд access через excel.(редактирование, удаление и добавление) XROMAD Microsoft Office Access 5 25.07.2012 17:58
Работа со стеком ksu04061992 Помощь студентам 0 28.05.2012 01:37
работа со стеком Sparky Паскаль, Turbo Pascal, PascalABC.NET 2 23.09.2010 11:08
операции над стеком в С - добавления и удаления следующего элемента стека Matadora Помощь студентам 0 04.09.2010 21:16
работа со стеком xarvenx Общие вопросы C/C++ 1 25.06.2009 13:31