Pseudocode

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