Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

стєк   Найти похожие ветки 

 
Nostalgia ©   (2010-02-24 20:29) [0]

Доброго времени суток!
помогите пожалуйста доработать программу. вот задание
Создать класс для работы со стеком. Способ представления - ланцюговий. создать приложение для демонстрации сетодов созданного класса. продемонстрировать методы класса для стека с 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.


 
KilkennyCat ©   (2010-02-24 20:39) [1]


> ланцюговий

это на каковском? на хохлятоделфийском?


 
Nostalgia ©   (2010-02-24 20:41) [2]

ланцюговий = сцепленный


 
KilkennyCat ©   (2010-02-24 20:42) [3]

отлично.
а вопрос-то в чем?


 
Nostalgia ©   (2010-02-24 20:45) [4]

как продемонстрировать что список выводится в Memo ? что то у меня не получается так  Memo1.Lines.Add(StrToFloat(^tmp));


 
KilkennyCat ©   (2010-02-24 20:48) [5]

а компилятор ничего, случайно, не говорит?
Наверное, шокирован вызовом randomize


 
Nostalgia ©   (2010-02-24 20:59) [6]

говорит ... и что делать ?


 
Eraser ©   (2010-02-24 21:01) [7]

и кто виноват ;-)


 
KilkennyCat ©   (2010-02-24 21:14) [8]


> и что делать ?

подумать о его словах.
Хотя, можно начать думать и раньше компилятора.
Например, о разности строковых и вещественных типов.


 
Игорь Шевченко ©   (2010-02-24 21:21) [9]

А вас в шарашкиной конторе форматировать не учат ?


 
Nostalgia ©   (2010-02-24 21:27) [10]

нет


 
KilkennyCat ©   (2010-02-24 21:30) [11]


> Игорь Шевченко ©   (24.02.10 21:21) [9]

Зато их учат уничтожать объекты только по специальной кнопке. (Конечно, может я ошибаюсь, и туды привязано событие онклоуз, но тогда их учат гарантированному закрытию)


 
oldman ©   (2010-02-25 14:22) [12]


> помогите пожалуйста доработать программу. вот задание
> Создать класс для работы со стеком.


Очень похоже на лабу (или курсач).
Цена не озвучена...


 
Сергей М. ©   (2010-02-25 14:33) [13]


> Nostalgia ©   (24.02.10 20:29)  



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


Уж можно было и по-одесски написать)
А то как-то стремно  - "пустой ланцюговий stack")


 
icWasya ©   (2010-02-25 17:53) [14]

Ну вот если САМ написал класс TStack, а демонстрируешь работу с TList.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.142 c
6-1217598621
Shamansky_ne
2008-08-01 17:50
2010.08.27
Soap как поменять пакет перед посылкой


2-1275109223
User
2010-05-29 09:00
2010.08.27
Exception при записи файла в недоступную для записи папку


2-1274254857
lock95
2010-05-19 11:40
2010.08.27
поиск одинаковых частей в двух бинарных файлах


15-1268600721
XXL
2010-03-15 00:05
2010.08.27
Тупой вопрос про тельавидение


2-1270206011
Константин
2010-04-02 15:00
2010.08.27
Как правильн вызвать Destroy?