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

Wichtig bei der Erstellung von Pseudocode ist:

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 ===== Pseudocode kann…

…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
 <, !=, > 

===== Variablen ===== Wie im echten Programm, müssen auch im Pseudocode alle Variablen, die später verwendet werden, vorher deklariert und initialisiert werden.

Der Unterschied zum echten Code ist, dass dies im Pseudocode sehr viel freier geschehen kann. Bsp. kann auf eine Typisierung der Variablen verzichtet werden.

==== Deklaration ====

 name;  a; isBoolean; 

==== Initialisierung bzw. Deklaration + Initialisierung ====

 name = "Bugs Bunny";  a = 2024; isBoolean = true; Eingabe a; 

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