|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
Цитата:
|