Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизстєк Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.064 c