![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите пожалуйста доработать программу. Как сделать чтобы в Мемо выводился стэк из 5 строк и длиной 10 символов ?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
S:TStack;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
S:=TStack.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add(pansichar(S));
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, 03.03.2010 в 22:28. |
|
#2
|
|||
|
|||
|
вообще, примерно так:
Код:
var
P : TStackEl;
begin
memo1.lines.clear;
P := S.StackTop;
while P <> Nil do
begin
memo1.lines.add(P.el);
P := P.prev;
end;
end;ЗЫ. Использовал твое описание. |
|
#3
|
||||
|
||||
|
И что это за строки и откуда они возмутся?
Ваша структура StackEl явно этих строк не содержит. Или вы хотите вывести строковое представление el ? |
|
#4
|
|||
|
|||
|
всё исправила. в мемо не выводятся строки(( почему ? подскажите пожалуйста
Код:
Цитата:
Последний раз редактировалось Nostalgia, 05.03.2010 в 19:37. |
|
#5
|
|||
|
|||
|
Гы! А что ты исправила-то?
|
|
#6
|
|||
|
|||
|
Цитата:
|