3  Flowcharts / Ablaufdiagramme

Inhalte stammen von (RaspberryPi-Foundation), lizensiert unter

Mit Flowcharts ist es möglich Programme oder Algorithmen visuell darzustellen. Wir beschränken uns vorerst auf folgende Symbole:

Form Aktion Beschreibung
Start & Ende Jedes Programm hat einen Anfang und ein Ende
Ablaufrichtung Die Bausteine werden mit Pfeilen verbunden, welche die Programmablaufrichtung angeben.
Ablaufrichtung Entweder es wird eine Info an den Benutzer ausgegeben oder es wird eine Benutzereingabe verlangt.
Prozessschritt Hier wird im Programm etwas berechnet.

TODO: Beispiel fertigstellen

flowchart TB
A[Start] --> B(Round)

3.1 Aufgaben

3.1.1 Aufgabe: Flow Chart in ein Python Programm übersetzen

Schau dir folgendes Flowchart an und programmiere den Ablauf in Python aus. Erstelle dazu in deinem Workspace eine neue Datei mit dem Namen flowchart_01_[DeinNachname].py

flowchart TB
id1([Start])-->id2[/Output: Hallo, ich bin Harald und ich komme vom Planeten X287./]
id2-->id3[/Output: Wie ist dein Name?/]
id3-->id4[/Input: name/]
id4-->id5[/"Output: Servus {name}. Ich komme aus dem Jahr 2250 und bin 20 Jahre alt."/]
id5-->id6[/Input: alter/]
id6-->id7["alterZukunft=alter+(2250-2025)"]
id7-->id8[/"Wow, im Jahr 2250, wirst du {alterZukunft} Jahre alt sein. Das ist wirklich alt"/]
id8-->id9[/"Output: Welche Art von Musik hörst du?"/]
id9-->id10[/Input: musik/]
id10-->id11[/"Output: Ich habe noch nie von {musik} gehört! Nun muss ich wieder zurück nach Hause. Machs gut {name}. Bis bald!"/]

Hinweise:

Hast du keine Ahnung mehr wie das alles funktionert? Dann lies dir nochmal das Kapitel Chapter 2 durch.

Folgende Fehler könnten dir beim programmieren passieren: - Fehlende Klammern - Fehler bei der Groß- und Kleinschreibung, z.B. Print statt print - Falsche Einrückungen - Bei Texten fehlen die Double Quotes die den Text einfassen "Ich bin ein Text und werde von Gänsefüsschen oben umfasst". - Bei der Ausgabe von Variablenwerten mit print("{variable}") fehlt das f: pring(f"{variable}). Man nennt das übrigens f-string. - Du hast ein Variable mit einem Namen intitialisert und dieser einen Wert zugewiesen, schreibst den Variablennamen später aber falsch, bzw. nicht gleich. - Fehlendes Casting einer Zahl int() wenn mit input() die Eingabe einer Zahl erforderlich ist, z.B.: `alter=int(input(“Wie alt bist du?”))

Note

Zeige mir das Programm, wenn du fertig bist!

3.1.2 Aufgabe: Flow Chart für einen Programmablauf erstellen

Die Aufgabe wurde von (RaspberryPi-Foundation) übernommen und abgeändert. Lizensiert mit

du sollst nun ein eigens Flowchart erstellen, welches den Programmablauf eines Gedankenlese-Mathetrick’s darstellt. Du musst den richtigen Ablauf für diesen Mathetrick entwickeln und über alle Variablen, Eingaben und Ausgaben nachdenken, die dafür benötigt werden.

3.1.2.1 Der Ablauf für den Gedankenlese Trick ist wie folgt:

  1. Wähle eine Zahl zwischen 1 und 10: Nennen wir diese Zahl ( x ).
  2. Multipliziere die Zahl mit 2: Jetzt hast du ( 2x ).
  3. Multipliziere die neue Zahl mit 5: Das ergibt ( 10x ).
  4. Teile die aktuelle Zahl durch die ursprüngliche Zahl: ( = 10 ).
  5. Ziehe 7 von der aktuellen Zahl ab: ( 10 - 7 = 3 ).

Egal, mit welcher Zahl du anfängst, du wirst immer bei 3 landen!

3.1.2.2 Anweisungen

  1. Erstelle nun in deinem Workspace eine neue Datei mit dem Namen flowchart_02_[DeinNachname].py.
  2. Danach gehst du auf die Webseite Mermaid Charts. Wir schauen uns gemeinsam an, wie man mit Mermaid ein Flussdiagramm erstellt.
  3. Erstelle das Flowchart für den Zaubertrick und beachte folgende Hinweise
Hinweise:

Dein Programm muss für den Spieler aufregend sein. Überlege dir, welche zusätzlichen Dinge du in dein Programm einbauen kannst, um es zu verbessern. Hier sind einige Ideen:

  • Stelle dich vor und frage den Spieler nach seinem Namen. Zum Beispiel: „Ich bin die große Magierin Mystical Meredith. Wie heißt du?“
  • Antworte mit: „Willkommen {Name}, ich werde einen Gedanken-Trick an dir vorführen.“
  • Gib deinem Spieler etwas Zeit zum Nachdenken, indem du verlangst, dass die Eingabetaste gedrückt wird, bevor Mystical Merediths Vermutung enthüllt wird.
  • Füge einen Prozesschritt hinzu, um es so erscheinen zu lassen, als ob Mystical Meredith nachdenkt. Im Prozesschritt (Rechteck) schreibst du z.B. ‘Warten für 10 Sekunden’ als Beschreibung hinen.

Obwohl die Antwort auf diesen Trick immer 3 ist, sollte dein Programm die Antwort basierend auf der Eingabe berechnen, die der Spieler zu Beginn des Tricks gegeben hat. Die Antwort sollte basierend auf deiner Berechnung enthüllt werden.

Checkliste – Dein Flussdiagramm für das Programm sollte:

  • Mystical Meredith vorstellen
  • Nach dem Namen des Spielers fragen
  • Den Namen des Spielers wiederholen
  • Nach einer Zahl zwischen 1 und 10 fragen
  • Die endgültige Zahl basierend auf dem Skript berechnen
  • Die „Vermutung“ dem Benutzer basierend auf der Berechnung mitteilen
  • „Theater“ einbauen, um es aufregend zu machen ```

Viel Spaß beim Programmieren und Vorführen des Tricks! 😊

Note

Wenn du fertig bist, erledige folgende Schritte: 1. Kopiere den Code von der Mermaid Seite in die Datei flowchart_02_[DeinNachname].py. Dieser Codeteil soll as Kommentar ausgezeichnet werden. Dazu musst du vor und nach dem eingefügten Code """ drei Double Quotes einfügen. 2. Mache auf der Mermaid Seite einen Screenshot vom ganzen Fenster (Code+Diagrammvorschau) und speicher diesen in deinem Workspace Ordner mit dem Namen flowchart_02_[DeinNachname].png. JPG als Dateiendung ist auch ok!

Zeige mir alles, wenn du fertig bist!

3.1.3 Aufgabe: Zaubertrick programmieren

Verwende nun dein Flowchart, von der letzten Aufgabe, und setze den Mathetrick wie von dir dargestellt in der Datei flowchart_02_[DeinNachname].py als Python Programm um.

Hinweise:
  • Um den Benutzer zu veranlassen, die Eingabetaste zu drücken, musst du einfach input() in eine eigene Zeile schreiben. Dies wartet auf eine Eingabe, bevor es zur nächsten Anweisung übergeht.

  • Wir haben eine Prozesschritt, der den Programmablauf verzögert, um es so wirken zu lassen, ab ols Meredith nachdenkt. Das kann man mit time.sleep(sek) machen, Schau dazu auf Tutorial zu Verzögerungen nach wie das funktioniert. Wichtig: Dazu muss import time am Programmanfang eingefügt werden.

Arithmetische Operationen in Python, die du kennen solltest:

Addition: +
Subtraktion: -
Multiplikation: *
Division: /
Note

Zeige mir das Programm, wenn du fertig bist!