Programmcode, der nicht zur maschinellen Interpretation dient.
Dieser Code dient vielmehr der Veranschaulichung eines Algoritmus.
Er hilft, einen Algorithmus zu verstehen, ohne die Zielgruppe auf eine spezielle Programmiersprache festzulegen.
Es gibt, neben anderen, vor allem folgende 3 Notationen:
| Notation | Beschreibung |
|---|---|
| JANA - Java based abstract notation for algorithms | An Java angelehnt |
| Pseudo-Pascal | An Pascal angeleht. Sehr “sprechend” |
| Deutsches Pseudo-Pascal | wie Pseudo-Pascal, nur mit deutschen Worten |
Laut https://oer-informatik.de/pseudocode ist wichtig bei der Erstellung von Pseudocode:
Verständlichkeit des Pseudocodes ist wichtiger als starre Konventionen!
Unnötige Details vermeiden: das Offensichtliche kann als bekannt vorausgesetzt werden!
Im Kontext bleiben: Wer ist Adressat und in welcher Problemdomäne befinde ich mich? Wem beantworte ich mit dem Pseudocode welche Frage?
JANA: geschweifte Klammern
{
Anweisung
}
Pseudo-Pascal: Schlüsselwort end
for (...) Anweisung end forDeutsches Pseudo-Pascal
WENN (...) Anweisung ENDE WENN
| JANA | Pseudo-Pascal | deutsches Pseudo-Pascal |
|---|---|---|
| int | integer | GANZZAHL |
| float | real | GLEITKOMMAZAHL |
| char | char | ZEICHEN |
| boolean | boolean | WAHRHEITSWERT |
| String | String | ZEICHENKETTE |
| Object | Object | OBJEKT |
JANA
int i int i := 0 Object oPseudo-Pascal
i: int i: int := 0 o: ObjectDeutsches Pseudo-Pascal
i: GANZZAHL i: GANZZAHL := 0 o: OBJEKT
Wichtig: Zuweisungsoperator
:= // Zuweisung (besser als = im Pseudocode)
+,-,/,* // Mathematische Operatoren & // Sollte kommentiert werden (Bit- oder Textoperation) <, >, ==, != // Vergleichsoperatoren : // Typdeklaration (nicht Division!) AND, OR, NOT // Logische Operatoren (ggf. deutsch verwenden)
JANA
if (...) {
Anweisung
} else if (...) {
Anweisung
} else {
Anweisung
}
Pseudo-Pascal
if (...) then Anweisung else if (...) Anweisung else Anweisung end ifDeutsches Pseudo-Pascal
WENN (...) DANN Anweisung SONST WENN (...) DANN Anweisung SONST Anweisung ENDE WENN
JANA
switch (variable) {
case 1: {
Anweisung
}
case >=2: {
Anweisung
}
default: {
Anweisung
}
}
Pseudo-Pascal
case variable of 1: Anweisung >=2: Anweisung else Anweisung end caseDeutsches Pseudo-Pascal
WERT VON variable ENTSPRICHT 1: Anweisung >=2: Anweisung SONST Anweisung ENDE WERT VON
JANA
while (...) {
Anweisung
}
Pseudo-Pascal
while (...) do Anweisung end whileDeutsches Pseudo-Pascal
SOLANGE (...) Anweisung ENDE SOLANGE
JANA
do {
Anweisung
} while (...)
Pseudo-Pascal
repeat Anweisung until (...)Deutsches Pseudo-Pascal
WIEDERHOLE Anweisung SOLANGE (...)
JANA
for (...) {
Anweisung
}
Pseudo-Pascal
for (...) Anweisung end forDeutsches Pseudo-Pascal
ZÄHLE i VON 0 BIS 7 mit Schrittweite 2 Anweisung ENDE ZÄHLEDie zur iterierende Menge kann relativ frei eingegeben werden, solange sie eindeutig definiert wird. Denkbar ist z.B.:
for (int i = 1..10) for (int i; i<=10; i++) for (int i = 1, 2, 3, .., 10)
JANA
foreach (String txt in txtList) {
Anweisung
}
Pseudo-Pascal
foreach element in list Anweisung next elementDeutsches Pseudo-Pascal
FÜR JEDES element VON liste Anweisung NÄCHSTES element
JANA
String halloWelt(String text) {
return "Hallo " & text
}
Pseudo-Pascal
FUNCTION halloWelt(text: String) : String Anweisung END halloWelt()Deutsches Pseudo-Pascal
FUNKTION halloWelt(text: String) : String RÜCKGABE "Hallo " & text ENDE halloWelt()
JANA
int zahlenfeld[] int zahlenfeld[1..100] zahlenfeld[n, m] zahlen2D[].lengthPseudo-Pascal
zahlenFeld = array [] of integer zahlenFeld = array [1..100] of integer zahlenFeld = array [1..n, 1..m] of integer zahlen2D[].lengthDeutsches Pseudo-Pascal
zahlenFeld = eindimensionales Ganzzahlen-Array zahlenFeld = eindimensionales Ganzzahlen-Array mit 100 Elementen zahlenFeld = zweidimensionales Ganzzahlen-Array zahlen2D[].LÄNGE