Einzelnen Beitrag anzeigen

VeeJay

Registriert seit: 3. Jan 2003
10 Beiträge
 
Delphi 7 Enterprise
 
#14
  Alt 4. Jan 2003, 01:12
Die Klausur ist am 10.01.
Unser Info-Lehrer war so freundlich uns all die Sachen
über die Ferien auf zu geben. Wir hatten nur 1 Stunde Unterricht
darüber. Und in der haben wir das Beispiel ganz oben gemacht.
Was ich hier poste ist vielleicht ein Achtel von allem, was wir noch
machen müssen

Meinst du das krieg ich noch hin, zumindest mit den verketteten Listen?

Hier ist noch der restliche Code:

Delphi-Quellcode:
unit Unit1; //Zeiger_verkett1 (ohne Verkettungsprozedur)
// Aufgaben: 1) Erkläre den Datentyp "knoten" (siehe unten)
// 2) Welche Ausgabe ist am Ende in Edit1.Text zu erwarten?
// 3) Was versteht man bei der Reihenfolge der Daten unter LIFO ?
// 4) Welche Vorteile bringt die dynamische Verkettung von Daten?
interface

uses Windows, Messages, SysUtils, Classes, Graphics,
      Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;
  Satz : string;

implementation {$R *.DFM}
//---------------------------------------------------
Type pkette = ^knoten; // p steht für Pointer
     knoten = RECORD
                   wort : string; next : pKette;
                 END;
//---------------------------------------------------
Var kette: pKette;

procedure TForm1.Button1Click(Sender: TObject);
Var neu, hilf :pKette;
begin
  kette:=nil; //Die Kette erhält einen Anfang
  satz:='';

  New(neu); //Ein neues Kettenglied wird erzeugt
  neu.wort:='Das ';
  neu.next:=kette;
  kette:=neu; //...und angehängt

  New(neu); //...noch ein Kettenglied
  neu.wort:='wars ';
  neu.next:=kette;
  kette:=neu;

  New(neu); //...und noch eines
  neu.wort:='schon ';
  neu.next:=kette;
  kette:=neu;
  {---------------------------------------------}

  satz:=kette^.wort; // Die Kette wird ausgelesen

  {Wenn wir den Kettenzeiger nicht verändern und statt-
  dessen den Hilfzeiger, können wir den Anfang der
  Kette stets wiederfinden!}


  hilf:=kette^.next; // Zum nächsten...
  satz:=satz+hilf^.wort;

  hilf:=hilf^.next; // Zum nächsten...
  satz:=satz+hilf^.wort;

  edit1.text:=satz; // Ausgabe am Bildschirm

end;

end.
  Mit Zitat antworten Zitat