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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2010, 20:20   #1
Nostalgia
Пользователь
 
Регистрация: 17.12.2008
Сообщений: 44
По умолчанию Программирование с использованием структур данных стэк

Доброго времени суток!
помогите пожалуйста доработать программу. вот задание
Создать класс для работы со стеком. Способ представления - ланцюговий. создать приложение для демонстрации сетодов созданного класса. продемонстрировать методы класса для стека с 5 строк длинной в 10 символов.

Код:
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const n=10;
var
  Form1: TForm1;
  MyList:Tlist;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyList:=TList.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;  tmp:TStackEl;
begin
  randomize;
  Mylist.count:=n;
  for i:=0 to n-1 do
    begin


      MyList[i]:=tmp;
    end;
  for i:=0 to MyList.count-1  do
    begin
  tmp:=MyList[i];
      Memo1.Lines.Add(StrToFloat(^tmp));
    end;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
  Mylist.Free;
  Form1.Close;
end;

end.

unit Unit2;

interface
uses SySUtils, Dialogs;
const
  StackEmpty=nil;
type
  T=integer;
  TStackEl=^Stackel;
  Stackel=record
  el:T;
  prev:TStackEl;
end;
TStack=class
private
  StackTop:TStackEl;
public
  Constructor Create;
  function EmptyStack:boolean;
  procedure AddToStack(elem:T);
  procedure DelFromStack;
  function LastOfStack:T;
end;

implementation

Constructor TStack.Create;
begin
  Inherited Create;
end;

function TStack.EmptyStack;
begin
  EmptyStack:=StacKTop=StackEmpty;
end;

procedure TStack.AddToStack;
var
  tmp:TStackEl;
begin
  new(tmp);
  tmp^.el:=elem;
  tmp^.prev:=StackTop;
  StackTop:=tmp;
end;

procedure Tstack.DelFromStack;
var
  help:TStackEl;
begin
  if StackTop<>StackEmpty then
  begin
    help:=StackTop;
    StackTop:=StackTop^.prev;
    dispose(help);
  end
  else
  showmessage ('ERROR stack pust');
end;

function TStack.LastOfStack;
begin
  if StackTop<>StackEmpty then
  result:=StackTop^.el
  else Showmessage ('ERROR1 stack pust');
end;

end.
Nostalgia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реализация линейных структур данных в подпрограммах ArniLand Общие вопросы C/C++ 0 31.01.2010 01:20
Help с разбором структур данных в Си War13 Помощь студентам 0 26.10.2009 19:55
Обработка массивов структур с использованием контейнеров artyom060791 Помощь студентам 0 14.04.2009 22:43
Программирование в Паскале с использованием объектов LyaLyaLya Паскаль, Turbo Pascal, PascalABC.NET 4 25.12.2008 15:46
Программирование алгоритмов циклическич структур lantian Паскаль, Turbo Pascal, PascalABC.NET 6 22.10.2008 16:05