Stos na klasach.

0

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.
0

lecz ciagle mam problem z podpunktem b

Pobierz dwie wartości ze stosu, wykonaj działanie i wrzuć wynik na stos...

0

czyżbyśmy mieli WTF roku na 4p?
co to jest

type PStos = ^TStos;
  TStos = class

??????????????????????????????????
Przecież ty nie rozumiesz elementarnych podstaw z programowania obiektowego. Jestem pewny, że znalazłeś jakiś kod, gdzie jest to zrobione na rekordach i wskaźnikach i po prostu wszędzie zamieniłeś record na class. I tutaj właśnie muszę cię zmartwić - TO TAK NIE DZIAŁA

0
abrakadaber napisał(a):

I tutaj właśnie muszę cię zmartwić - TO TAK NIE DZIAŁA

Że niby co "tak nie działa"?
Nie wiem jak Delphi, ale FPC radzi sobie świetnie z takimi rzeczami: http://ideone.com/nBUFAB
(tzn.pomijając bezsensowność robienia wskaźnika na klasę, bo klasa sama w sobie jest już nim :P).

1 użytkowników online, w tym zalogowanych: 0, gości: 1