You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
programname(input, ouput)
const
...
type
...
var
...
begin{ Statements }(* weitere Statements *)// Ein Kommentarend.
Typen
Prozeduren / Funktionen
Schleifen
while
while (expr) dobegin(* statements *)end;
Bedingungen
Muster
Durch eine Liste iterieren (laufen)
type
tRefDVElement = ^tDVElement
tDVElement = record
Wert: integer;
next, prev: tRefDVElement;
end;
procedureDurchlaufeListe(inRefListe: tRefDVElement);
var(* Hilfszeiger zum Iterieren *)
z : tRefDVElement;
begin
z := inRefListe;
while (z <> nil) dobegin(* statements *)
z := z^.next;
end;
end;
Suchen in Listen
functionSucheInListe(inRefListe: tRefDVElement, inSuchwert: integer) : tRefDVElement;
var(* Hilfszeiger zum Iterieren *)
z : tRefDVElement;
gefunden : boolean;
begin
z := inRefListe;
gefunden := false;
while (z <> nil) and (gefunden = false) dobeginif z.Wert = inSuchwert then
gefunden := true
else(* nachstes Element betrachten *)
z := z^.next;
end;
SucheInListe := z;
end;
Element zur Liste hinzufügen
functionpush(inRefListe: tRefDVElement, inWert: integer) : tRefDVElement;
var
e : tRefDVElement;
begin
new(e);
e^.next := nil;
e^.Wert := inWert;
if inRefList <> nilthen
inRefListe^.next := e;
push := e;
end;
Element in eine Liste einfügen
functioninsert(inRefListe: tRefDVElement, inWert: integer) : tRefDVElement;
var
e : tRefDVElement;
begin
new(e);
e^.Wert := inWert;
e^.next := nil;
if inRefList <> nilthenbegin
e^.next := inRefListe^.next;
inRefListe^.next := e;
end;
insert := e;
end;
Rekursiver Abstieg
type
tRefBinBaum = ^tBinBaum;
tBinBaum = record
Wert: integer;
links, rechts: tRefBinBaum;
end;
functionAbstieg(inRefWurzel: tRefBinBaum): boolean;
var
ergebnis : boolean;
begin
ergebnis := false;
if inRefWurzel <> nilthenbegin(* Variante 1 *)
Abstieg(inRefWurzel^.links);
Abstieg(inRefWurzel^.rechts);
(* Variante 2 *)
ergebnis := Abstieg(inRefWurzel^.links) and Abstieg(inRefWurzel^.rechts);
(* Variante 3 *)if ( .. ) then
ergebnis := Abstieg(inRefWurzel^.links)
else
ergebnis := Abstieg(inRefWurzel^.rechts)
end;
Abstieg := ergebnis;
end;