| nResultat:N:=0 |
function Testfunktion()
result := 10
end
nResultat := Testfunktion()
Ergebnis: nResultat = 10
b)
CODE
| nResultat:N:=0 |
function Testfunktion(param1, param2)
| nErgebnis |
nErgebnis := param1 + param2,
result := nErgebnis
end
nResultat := Testfunktion(5, 5)
Ergebnis: nResultat = 10
c)
CODE
| nResultat:N:=0 |
function Testfunktion(param1, param2)
function Multiplikation(p1, p2)
result := p1 * p2
end,
nResult := Multiplikation(param1, param2)
end
nResultat := Testfunktion(5, 5)
Ergebnis: nResultat = 25
d)
CODE
| nResultat:N:=0 |
function Testfunktion_A() ... end,
function Testfunktion_B() ... end,
function Testfunktion_A()
result := Testfunktion_B(),
end
function Testfunktion_B()
result := 10,
end
nResultat := Testfunktion_A()
Ergebnis: nResultat = 10
e)
CODE
| nResultat:N:=0 |
function Testfunktion(param1:=10)
result := param1,
end
nResultat := Testfunktion()
Funktionsrückgabewert
Restriktionen
Der Rückgabewert einer Funktion wird in der Spezialvariable „result" gespeichert, welche immer automatisch vorhanden ist und nicht extra deklariert werden muss.
Beispiele
CODE
function Testfunktion()
result := 10
end,
WriteLn(Str(Testfunktion()))
Ergebnis: Ausgabe des Strings „10"
Funktionsende
Die Ausführung einer Funktion endet mit die letzte Zeile der Funktion vor end, oder wenn die Ausführung auf einem Exit Befehl landet. Nach dem Befehl Exit keine andere Zeile der Funktion in der aktuellen Ausführung ausgewertet wird.
Beispiele
CODE
function Testfunktion()
Meld("hello"),
Exit,
Meld("world"),
end,
Testfunktion()
Ergebnis: Die Meldung “world” wird nie angezeigt
Call by Reference für Übergabeparameter
Restriktionen
Parametertyp R markiert einen Übergabeparameter für referenzierte Funktionsaufrufe.
Ausnahme: beim "+=" Operator können auch Strings verwendet werden.
Bei einer Operation müssen alle Typen gleich sein.
Beispiele
a)
CODE
| m_nResultat:N:=5 |
m_nResultat += 1
Ergebnis: m_nResultat = 6
b)
CODE
| m_nResultat:N:=0 |
m_nResultat++
Ergebnis: m_nResultat = 1
Bedingungen und Vergleiche
Allgemein
Diagramm
Restriktionen
Vergleiche werden innerhalb Bedingungen und logischen Zuweisungen verwendet
Operator „$" kann nur mit „String" Werten und Variablen verwendet werden
if-Anweisungen
Diagramm
Beispiele
a)
CODE
| m_nResultat:N:=0 |
if (10 >= 5) and (m_nResultat = 0) then
m_nResultat := 10,
else
m_nResultat := 5
endif
Ergebnis: m_nResultat = 10
b)
CODE
| m_cTest |
m_cTest := "bc",
if m_cTest $ "abcdefg" then
WriteLn("true")
else
WriteLn("false")
endif
Ergebnis: Ausgabe des Strings „true", da „bc" in „abcdefg" enthalten ist.
c)
CODE
| m_bTrue, m_bFalse, m_bRes |
m_bTrue := true,
m_bFalse := false,
m_bRes := m_bTrue and m_bFalse,
if m_bRes then
WriteLn("Wahr"),
else
WriteLn("Falsch"),
endif
Ergebnis: Ausgabe des Strings „Falsch"
case-Anweisungen
Diagramm
Restriktionen
Bei Vergleichen in der of Anweisung wird statt einer Variable nach dem case der boolsche Wert true gesetzt.
Beispiele
a)
CODE
| m_nCount |
m_nCount := 1,
case m_nCount
of 0 :: WriteLn("A"),
of 1 :: WriteLn("B"),
otherwise WriteLn("C"),
endcase
Ergebnis: Ausgabe des Strings „B"
b)
CODE
| m_nCount |
m_nCount := 1,
case m_nCount
of {0, 1} :: WriteLn("A"),
of {2, 3} :: WriteLn("B"),
otherwise WriteLn("C"),
endcase
Ergebnis: Ausgabe des Strings „A"
c)
CODE
| m_nCount |
m_nCount := 10,
case true
of m_nCount < 0 :: WriteLn("A"),
of m_nCount < 5 :: WriteLn("B"),
otherwise WriteLn("C"),
endcase
Ergebnis: Ausgabe des Strings „C"
Schleifen Allgemein
Schleifen ausführen ihre Befehle wiederholend
Eine Schleife kann auf einer beliebigen Zeile mit dem Befehl Break beendet werden. Der Befehl Break beendet nur die nächste Schleife, die gerade ausgeführt wird.
for-Schleife
Diagramm
Restriktionen
Berechnung der Schleifenwiederholungen erfolgt einmal zu Beginn
Beispiele
a)
CODE
| m_nCount:N:=0 |
for m_nCount := 0 to 10 do
WriteLn(m_nCount),
next
Ergebnis: Ausgabe der Zahlen 0 bis 10
b)
CODE
| m_nCount:N:=0 |
for m_nCount := 10 downto 0 do
WriteLn(m_nCount),
next
Ergebnis: Ausgabe der Zahlen 10 bis 0
foreach-Schleife
Diagramm
Restriktionen
Berechnung der Schleifenwiederholungen erfolgt einmal zu Beginn
Beispiele
CODE
| m_nRec, m_aArr |
m_aArr := {1, 2, 3, 4, 5},
foreach m_nRec in m_aArr do
WriteLn(Str(m_nRec)),
end
Ergebnis: Ausgabe der Zahlen 1 bis 5
while-Schleife
Diagramm
Restriktionen
Berechnung der Schleifenwiederholung erfolgt je Durchlauf
Beispiele
CODE
| m_nCount:N:=0 |
while m_nCount <= 10 do
WriteLn(m_nCount),
m_nCount++,
end
Ergebnis: Ausgabe der Zahlen 0 bis 10
repeat-Schleife
Diagramm
Restriktionen
Berechnung der Schleifenwiederholung erfolgt je Durchlauf
Beispiele
CODE
| m_nCount:N:=0 |
repeat
writeln(m_nCount),
m_nCount++,
until m_nCount > 10 end
Ergebnis: Ausgabe der Zahlen 0 bis 10
Loop-Schleife
Diagramm
Informationen
Dieser Schleifen-Typ ersetzt Konstruktionen wie z.B.: while True do ... Loop wird immer mit End abgeschlossen. Die Schleife kann nur in Verbindung mit Break oder Exit (innerhalb von Funktionen) verlassen werden.
Beispiel
CODE
| i |
i := 1,
loop // Schleifenbeginn
i++,
if i = 10 then
WriteLn(i),
Break
endif
end // Schleifenende
Include von Programmdateien
Diagramm
Restriktionen
Die zu „includierende" Programmdatei muss freigegeben sein! („Version freigeben")
Beispiele
a) Programmdateipfad: Includeprogramm Dateiinhalt:
CODE
function Ausgabe(cStr)
writeln(cStr)
end
b)
CODE
//#P Includeprogramm
Ausgabe("Hallo Welt"),
Ergebnis: Ausgabe des Strings „Hallo Welt"
Exception-Handling / Schutzblöcke
Diagramm
Beispiele
a)
CODE
| m_nCount:N:=10 |
startseq
case m_nCount
of 0 :: WriteLn("A"),
of 1 :: WriteLn("B"),
otherwise WriteLn("C"),
endcase
onerror
WriteLn("Fehler")
stopseq
b)
CODE
| m_nCount:N:=0 |
startseq
while m_nCount < 10 do
WriteLn(nCount),
end
always
WriteLn("Ende der Sequenz")
stopseq
Kommentare
Beschreibung
Kommentare sorgen für einen verständlicheren Code, indem sie es ermöglichen, zusätzliche Beschreibungen einzuführen, die beim Ausführen des Codes jedoch ignoriert werden.
Beispiele
a) Einzeilige Kommentare:
CODE
// Diese Zeile wird nicht ausgeführt.
WriteLn('Hello World'),
b) Mehrzeilige Kommentare:
CODE
/*
Diese Zeile wird nicht ausgeführt.
Auch diese Zeile wird nicht ausgeführt.
*/
WriteLn('Hello World'),
c)
CODE
Writeln('Hello ' + /* Dieser Bereich wird nicht ausgeführt / komplett ignoriert */ 'World'),
JavaScript errors detected
Please note, these errors can depend on your browser setup.
If this problem persists, please contact our support.