Главная страница
    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.48 MB
Время: 0.057 c
2-1273603596
Kukulkan
2010-05-11 22:46
2010.08.27
Как правильно спарсить нужные данные???


6-1221664307
denissoft
2008-09-17 19:11
2010.08.27
Как переслать огромный файл по ТСП/ИП от 100 Мб- 4 Гб.


2-1272982597
novichek
2010-05-04 18:16
2010.08.27
TCPserver


2-1270662405
Vincero
2010-04-07 21:46
2010.08.27
Узнать текущую ширину edit а


15-1267738204
Юрий
2010-03-05 00:30
2010.08.27
С днем рождения ! 5 марта 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский