Wie Liste in Delphi / Pascal implementieren?

Hey, ich komme leider bei dieser Aufgabe nicht weiter ...

Danke im Voraus

interface
uses classes;
type
  TStackelement = class // Klasse der Datenojekte aus denen die Liste aufgebaut wird.
  content: char; // Datum des Stackelements (hier ein Zeichen)
  next: TStackelement; // Pointer (Objektvarialbe) des Nachbarelements
end;
TdynCharStack = class // Klasse die den Stapel darstellt bzw. verwaltet.
  private // Attribute
    stack: TStackelement; // Anfang der einfach verketteten Liste.
  public // Methoden
    Constructor create;
  
    procedure push(c: char); virtual;
    function empty: boolean; virtual;
    function full: boolean; virtual;
    function pop: char; virtual;
    function top: char; virtual;
    procedure ausgabe(l: Tstrings); virtual;
    
    destructor destroy; override;
  end;

implementation

//+---------------------------------------------------------------------
//|     TdynCharStack: Methodendefinition
//+---------------------------------------------------------------------

  Constructor TdynCharStack.create;
    // Objekt wird erzeugt und die Liste initialisiert. Muss vor Verwenden des Stacks 
    // einmal aufgerufen werden.
    begin
      inherited create;
      stack := nil; // Kein Element in der Liste.
      TdynCharStack.create := ('c');
    end;

    //-------- push (public) -----------------------------------------------
    procedure TdynCharStack.push (c: char);
      // Ein neues Datenelement wird erzeugt das Zeichen in "c" übertragen und
      // damit auf den Stapel "gelegt".
        begin
          TdynCharStack.create := ('b');
        end;
    
    //-------- empty (public) ----------------------------------------------
    function TdynCharStack.empty : boolean;
      // Liefert "True", wenn der Stack keine Daten enthält.
      begin
        if Stack = nil then
          result := true
        else
          result := false;
      end;

    //-------- full (public) -----------------------------------------------
    function TdynCharStack.full : boolean;
      // Liefert "True", wenn der Stack keine Daten mehr aufnehmen kann. Hier nur der Vollständigkeit halber, aber ohne Umsetzung. (liefert immer "false".)
      begin
        result := false;
      end;

    //-------- pop (public) ------------------------------------------------
    function TdynCharStack.pop : char;
      // Ist der Stack nicht leer, wird das oberste Element entfernt und das Zeichen
      // bzw. die Daten zurückgegeben. Wird die Methode bei leeren Stack aufgerufen
      // ist das Ergebnis unbestimmt.
      begin
        if not stack = nil then
      end;

    //-------- top (public) ------------------------------------------------
    function TdynCharStack.top : char;
      // Ist der Stack nicht leer, wird das oberste Zeichen bzw. die Daten des obersten
      // Elements zurückgegeben. Wird die Methode bei leeren Stack aufgerufen ist das
      // Ergebnis unbestimmt.
      begin
      end;

    //-------- destroy (public) ------------------------------------------------
    destructor TdynCharStack.destroy;
      // Alle Datenelemente werden entfernt und das Objekt "zerstört" - die Instanz des 
      //Objektes gelöscht.
      begin
        n.free;
        inherited destroy;
      end;
Computer, programmieren, Computersprache, Delphi, Informatik, pascal
2 Antworten
Wortraten in Lazarus/Delphi?

Hallo Leute, also im Informatikunterricht müssen wir ein Wortraten-Programm programmieren. Ich bin jetzt soweit dass aus meinem Edit ein zufälliges Wort aus einem array ausgewählt wird. Ich komme jetzt leider nicht weiter, denn ich hab jetzt noch vor das zufällig ausgewählte Wort durch Sternchen zu ersetzen. Außerdem muss ich auch noch überprüfen, ob der eingegebene Buchstabe in der Eingabe einem Buchstaben aus dem zufällig ausgewählten Wort entspricht und diesen dann 'aufdecken' bis alle Buchstaben aus dem generierten Wort erraten wurden.

Kann mir da jemand helfen?

unit uWortraten;

uses
  [...], uSpiel;

type

  { TFWortraten }

  TFWortraten = class(TForm)
    BUeberpruefen: TButton;
    BNeustarten : TButton;
    EBuchstabe: TEdit;
    EAusgabe : TEdit;
    EWort : TEdit;
    LAusgabe : TLabel;
    LEingabe: TLabel;
    LWortraten: TLabel;
    procedure BNeustartenClick(Sender : TObject);
    procedure BUeberpruefenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { private declarations }
  
public
{ public declarations }
    sAusgabe : string;
    sBuchstabe : string;
    sWort : string;
    sSternwort : string;
  end;

var
  FWortraten: TFWortraten;
  oSpiel : TSpiel;

{ TFWortraten }

procedure TFWortraten.FormCreate(Sender: TObject);
begin
  oSpiel := TSpiel.Create;
end;

procedure TFWortraten.FormDestroy(Sender: TObject);
begin
  oSpiel.Destroy;
  oSpiel := nil;
  oSpiel.Free;
end;

procedure TFWortraten.BUeberpruefenClick(Sender: TObject);

begin
  if Length(EBuchstabe.Text) > 1 then
     begin
     sAusgabe := 'Du darfst nur einen Buchstaben verwenden!';
         end;
  if Length(EBuchstabe.Text) = 1 then
     begin
     sAusgabe := '';
      end ;
  EAusgabe.Text := sAusgabe;
  EWort.Text := oSpiel.sGibWort;
end;

procedure TFWortraten.BNeustartenClick(Sender : TObject);
begin
  sWort := '';
  EWort.Text := sWort;
  sBuchstabe := '';
  EBuchstabe.Text := sBuchstabe;
  sAusgabe := '';
  EAusgabe.Text := sAusgabe;
end;

end.
unit uSpiel;

[..]

type

  { TSpiel }

  TSpiel = class (TObject)
    private
      sZufallswort : string;
      procedure Zufallswortauswaehlen;


    public
      asListe: array[1..6] of string;
      constructor Create;
      destructor Destroy; reintroduce;
      function sGibWort : string;
  end;


function TSpiel.sGibWort : string;
begin
  Zufallswortauswaehlen;
  Result := sZufallswort;
end;

procedure TSpiel.Zufallswortauswaehlen;
begin
  sZufallswort := asListe[Random(6)+1];
end;

constructor TSpiel.Create;
begin
  inherited Create;
  Randomize;
  asListe[1] := 'Haus' ;
  asListe[2] := 'Katze' ;
  asListe[3] := 'Wasser' ;
  asListe[4] := 'Staubsauger';
  asListe[5] := 'Kalkreste';
  asListe[6] := 'Kabelsalat';
  Zufallswortauswaehlen;
end;

destructor TSpiel.Destroy;
begin
  inherited Destroy;
end;

end.
Schule, Delphi, Informatik, lazarus
1 Antwort
Lazarus bzw. Programmiersprache "Pascal" problem beim erstellen eines Taschenrechners?

Hallo.

Ich bin gerade dabei einen Taschenrechner auf Lazarus mit der Programmiersprache Pascal zu programmieren.
Dennoch hab ich bei einer Sache ein Problem (bin noch Anfänger in diesem Bereich).
Und zwar schaffe ich es nicht, dass es ausgerechnet wird.
Also ich hab es erstmal mit einem label probiert.
Da schaff ich (komisch gesagt) nicht die opperatoren (+,-,*,/) von den Zahlen zu "Filtern".
Also so dass erkannt wird was davon die zahl ist und was der opperator damit das automatisch ausgerechnet wird.

2.Variante ist, ich hab 3 edits. Ein Edit für die erste zahl und eins für die zweite und eins für den opperator aber da hab ich das problem mit der virtuellen tastatur (welche dabei sein muss), da ich nicht weiß wie man da einstellt (auch nicht vom nachdenken her) dass man in das 2. edit feld schreibt wenn man die 2.zahl schreiben will. z.b. dass sobald man auf die edit fenster klickt, dass dann jede zahl die eingegeben wird nur da angezeigt wird.

Hoffe es ist einigermaßen verständlich.

Kurze zusammenfassung:
1. wie bringt man einen Taschenrechner mit Lazarus mit nur einem label wo alles reinkommt zum rechnen
2.Wie macht man es so, dass bei einer virtuellen tastatur, sobald man auf ein edit fenster klickt , alles was man klickt in dem ausgewählten edit fenster landet?

danke im Vorraus

programmieren, Delphi, lazarus, pascal, Taschenrechner
1 Antwort

Meistgelesene Fragen zum Thema Delphi

Wo kann ich Delphi kostenlos downloaden?

7 Antworten

Warum läuft Mondeo nach Injektor wechseln nicht rund?

1 Antwort

Gibt es Delphi als komplett kostenlosen Download?

3 Antworten

delphi edit felder auslesen

4 Antworten

Was ist der Unterschied zwischen einer Function und einer Procedure?

4 Antworten

Delphi ds 150e fehler auslesen?

1 Antwort

Zwei Delphi Formulare verbinden

2 Antworten

Spiel in Delphi programmieren!?

3 Antworten

Programm schreiben zum Lösen linearer Gleichungssysteme (Delphi)

2 Antworten

Delphi - Neue und gute Antworten