Skip to content

ChristianBoehm/pascal-training

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cheatsheet Pascal

Syntax

Grundlegender Programmaufbau

program name(input, ouput)

const
     ...
type
     ...
var
     ...
begin
 
 { Statements }
 (* weitere Statements *)
 // Ein Kommentar
 
end.

Typen

Prozeduren / Funktionen

Schleifen

while

while (expr) do
begin 
 (* statements *)
end;

Bedingungen

Muster

Durch eine Liste iterieren (laufen)

type
    tRefDVElement = ^tDVElement
    tDVElement = record
        Wert: integer;
        next, prev: tRefDVElement;
    end;

procedure DurchlaufeListe(inRefListe: tRefDVElement);
var
    (* Hilfszeiger zum Iterieren *)
    z : tRefDVElement;
begin 
     z := inRefListe;
     while (z <> nil) do
     begin
        (* statements *)
        z := z^.next;
     end;
end;

Suchen in Listen

function SucheInListe(inRefListe: tRefDVElement, inSuchwert: integer) : tRefDVElement;
var
    (* Hilfszeiger zum Iterieren *)
    z : tRefDVElement;
    gefunden : boolean;
begin 
     z := inRefListe;
     gefunden := false;
     while (z <> nil) and (gefunden = false) do
     begin
        
        if z.Wert = inSuchwert then
            gefunden := true
        else
            (* nachstes Element betrachten *) 
            z := z^.next;
     end;

     SucheInListe := z;
end;

Element zur Liste hinzufügen

function push(inRefListe: tRefDVElement, inWert: integer) : tRefDVElement;
var
    e : tRefDVElement;
begin

    new(e);
    e^.next := nil;
    e^.Wert := inWert;

    if inRefList <> nil then
        inRefListe^.next := e;

    push := e;

end;

Element in eine Liste einfügen

function insert(inRefListe: tRefDVElement, inWert: integer) : tRefDVElement;
var
    e : tRefDVElement;
begin

    new(e);
    e^.Wert := inWert;
    e^.next := nil;

    if inRefList <> nil then
    begin
        e^.next := inRefListe^.next;
        inRefListe^.next := e;
    end;
    insert := e;

end;

Rekursiver Abstieg

type
    tRefBinBaum = ^tBinBaum;
    tBinBaum = record
            Wert: integer;
            links, rechts: tRefBinBaum;
        end;

function Abstieg(inRefWurzel: tRefBinBaum): boolean;
var
    ergebnis : boolean;
begin
    ergebnis := false;
    if inRefWurzel <> nil then
    begin

        (* 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;

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Pascal 100.0%