Skocz do zawartości

Stos na klasach,ONP


achtung303c

Polecane posty

Witam,mam do napisania taki programik:

 

"c.5 Stos na klasach (wierzchołek ST typu PStos, PStos=^TStos;)

Dane:Liczba rzeczywista Operacje: a)Wkładanie na stos,zdejmowanie ze stosu; b)dodawanie,odejmowanie, mnożenie i dzielenie liczb z wierzchołka stosu: np function dodaj(a,b: Double): double. W programie głównym wykonać ciąg operacji z godnie z zasadą odwrotenj notacji polskiej."

I już od paru dni mam z nim problem do tej pory udało mi się wykonać podpunkt a, lecz ciagle mam problem z podpunktem b,byłbym wdzięczny za jakąkolwiek pomoc.

 

Oto co do tej pory mi się udało napisać

 

program project1;
uses crt;
var co:char;
n:integer;
type PStos = ^TStos;
 TStos = class
Liczba: Byte;
Nastepny: PStos;
 end;
procedure Usun(var Pocz: PStos);
var
  Pom: PStos;
begin
Pom := Pocz^.Nastepny;
Dispose(Pocz);
Pocz := Pom;
end;
 procedure DodajS(var Pocz: PStos; Liczba: Byte);
 var
Nowy: PStos;
 begin
New(Nowy);
Nowy^.Liczba := Liczba;
Nowy^.Nastepny := Pocz;
Pocz := Nowy;
 end;
procedure Wypisz(Pocz: PStos);
var i: integer;
 begin
while Pocz <> nil do
begin
 	WriteLn(i,':' ,Pocz^.Liczba);
  	Pocz := Pocz^.Nastepny;
 	i:=i+1;
end;
 end;
var
 Pocz: PStos;
 Liczba: Byte;
 code: Integer;
begin
 new(Pocz);
 repeat
clrscr;
writeln('d - dodaj do stosu');
writeln('u - usun element ze stosu ');
writeln('w - wypisz stos');
writeln('q - koniec');
co:=readkey;
case co of
'd': begin write('podaj wartosc: '); readln (n); DodajS(Pocz ,n); end;
'u': begin usun(Pocz); end;
 	'w': begin wypisz(Pocz); co:=readkey; end;
end;
 until co='q';

end.

Link do komentarza
Udostępnij na innych stronach

Dawno delphi nie używałem ale:

1) Klasa juz jest wskaznikiem, tak więc New(Nowy); utworzy wskaznik do klasy (4bajty). reszta operacji zrobi tylko sieczke z pamieci.

2) Klasy tworz tak jak sie powinno tworzyc

3) procedure Usun(var Pocz: PStos); - var jest zbedne

 

Podsumowanie:

Nie masz pojęcia o uzywaniu klas, radze sięgnąć po podstawy.

Link do komentarza
Udostępnij na innych stronach

Dawno delphi nie używałem ale:

1) Klasa juz jest wskaznikiem, tak więc New(Nowy); utworzy wskaznik do klasy (4bajty). reszta operacji zrobi tylko sieczke z pamieci.

2) Klasy tworz tak jak sie powinno tworzyc

3) procedure Usun(var Pocz: PStos); - var jest zbedne

 

Podsumowanie:

Nie masz pojęcia o uzywaniu klas, radze sięgnąć po podstawy.

 

To samo mu powiedzieli na innym forum, a na jeszcze innym dostał gotowca :) Moim zdaniem temat mozna zamknąć.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...