**This is an old revision of the document!**
REVEAL
Pseudocode
Programmcode, der nicht zur maschinellen Interpretation dient.
Dieser Code dient vielmehr der Veranschaulichung eines Algoritmus. Er hilft, einen Algorithmus zu verstehen.
Problem
- Interpretation von Programmcode wird erschwert durch
- Eigenheiten der unterschiedlichen Programmiersprachen
- Unterschiedliche Syntax ===== Pseudocode Eigenschaften =====
- Eliminiert diese Eigenheiten
- Formulierung ist ähnlich einem Programm
- Aber ohne konkrete Syntax einer bestimmten Programmiersprache
—→>
Laut 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?
Aussehen
*Der Syntax höherer Programmiersprachen ähneln
if, then, else, for, in,*Gemixt werden mit natürlicher Sprache
wenn, dann, sonst, ist, größer, kleiner, wahr ...*Gemixt werden mit mathematischer Notation
<, !=, >, *, /, :=, ==, AND, OR, NOT
===== Variablen ===== Wie im echten Programm, müssen auch im Pseudocode alle Variablen, die später verwendet werden, vorher deklariert und initialisiert werden.
==== Deklaration ====
String name; int a; boolean isBoolean;
==== Initialisierung bzw. Deklaration + Initialisierung ====
ZEICHENKETTE name = "Bugs Bunny"; GANZZAHL a = 2024; WAHRHEITSWERT isBoolean = true; Eingabe a;
Mit der Verwendung der Datentypen, die aus Java bekannt sind, kannst du eigentlich nichts falsch machen.
===== Kontrollstrukturen ===== Kontrollstrukturen können ebenfalls wunderbar in Pseudocode beschrieben werden. Dabei geht es ausschließlich darum, zu sehen, welche Kontrollstruktur verwendet wurde und wo sich Anfang und Ende der jeweiligen Struktur befindet.
Bedingungen
Denkbar sind stark an eine höhere Programmiersprache angelegte Konstrukte wie
Eingabe a if (a > 45) { Ausgabe: a } else { Ausgabe: Kein Treffer }
Konstrukte, die natürliche Sprache verwenden
EINGABE a WENN a kleiner 45 DANN Ausgabe a SONST Ausgabe: Kein Treffer
Wichtig: Da es bei diesem Format keine öffnende und schließende geschweifte Klammern gibt, muss durch korrekte Einrückung dafür gesorgt werden, dass Anfang und Ende des Blocks klar werden!
Loops
for … to … step \ wiederhole … solange/bis … wiederhole_ende \ repeat … until
for(i=5, i< 10, i++){ Ausgabe: i }
for (startwert i= 5, endwert i=10, schrittweite 1){ Ausgabe i }
INPUT listOfNumbers FOR each number in listOfNumbers PRINT number END FOR