Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
3-1242172459
Lex_!
2009-05-13 03:54
2010.08.27
Список ключевых полей таблици MSSQL2000


2-1269906662
Дмитрий
2010-03-30 03:51
2010.08.27
обработка пакета сервера


2-1273042460
'<>
2010-05-05 10:54
2010.08.27
Как преобразовать 30 байт в число и обратно?


15-1264487745
Jeer
2010-01-26 09:35
2010.08.27
Инет-разум


2-1268641701
Alexsis f
2010-03-15 11:28
2010.08.27
От Delphi 7 к Delphi 2010





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский