lehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-teiler-einer-zahl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-teiler-einer-zahl [2023/08/27 19:44] Olaf Schnürerlehrkraefte:snr:informatik:glf23:python:vom-pseudocode-zum-programm-teiler-einer-zahl [2023/11/24 09:08] (current) – [Vom Pseudo-Code zum Programm: Alle Teiler einer Zahl ausgeben] Olaf Schnürer
Line 1: Line 1:
 +~~NOTOC~~
 +
 +===== Vom Problem über Pseudo-Code zum Programm: Alle Teiler einer Zahl ausgeben =====
 +
 +Ziel: Ein Python-Programm schreiben, das alle Teiler einer Zahl ausgibt. (Ich habe das nicht sichtbare Programm vorgeführt.)
 +
 +Vorstellung: Achtjährigem erklären, wie er alle Teiler einer Zahl ermitteln kann.
 +
 +Im Unterrichtsgespräch folgenden Pseudo-Code an die Tafel geschrieben:
 +
 +==== Normale Sprache ====
 +
 +<code txt>
 +Lies vom Benutzer eine positive natürliche Zahl ein.
 +Teste jede Zahl von 1 bis zu der eingegebenen Zahl, ob sie ein Teiler der eingegebenen Zahl ist. Wenn ja, gib den Teiler aus. 
 +</code>
 +
 +==== Pseudo-Code ====
 +
 +<code txt>
 +Lies vom Benutzer eine positive natürliche Zahl ein und speichere sie unter dem Namen x.
 +t = 1
 +Solange t kleiner-gleich x gilt, wiederhole:
 +    Wenn x/t eine natürliche Zahl ist, dann:
 +        Gib t aus.
 +    Erhöhe t um 1. 
 +</code>
 +
 +=== Erklärungen dazu ===
 +
 +Wesentliche Elemente eines Computerprogramms, die man im obigen Pseudo-Code sieht: 
 +  * Verwendung von Variablen, um Zahlen (oder andere Informationen) zu speichern.
 +  * Eingabe und Ausgabe (vgl. EVA-Prinzip der Informatik (= Eingabe-Verarbeitung-Ausgabe-Prinzip))
 +  * Schleife: Solange eine Bedingung gilt, wird ein Programmteil wiederholt.
 +  * if-then-statement (oder Verzweigung): Wenn eine Bedingung gilt, wird ein gewisser Programmteil ausgeführt. 
 +  * Arithmetik (Rechnen mit Zahlen): Im obigen Programm die Berechnung des Rests einer Division per ''x % t''.
 +  * Der obige Pseudo-Code ist ein **Algorithmus** zur Bestimmung aller Teiler einer Zahl. Ein Algorithmus ist eine Handlungsanweisung (die nach endlich vielen Schritten enden sollte), etwa ein Kochrezept.
 +
 +(Es fehlen noch Listen und Funktionen, dann hat man die wesentlichen Dinge, die man beim Programmieren braucht.)
 +
 +<hidden Tafelfotos in den verschiedenen Klassen>
 +{{lehrkraefte:snr:informatik:glf23:python:2pg-teiler.jpg?nolink&800|}}
 +{{lehrkraefte:snr:informatik:glf23:python:2enp-teiler.jpg?nolink&800|}}
 +{{lehrkraefte:snr:informatik:glf23:python:2dnp-teiler.jpg?nolink&800|}}
 +</hidden>
 +==== Python-Programm ====
 +
 +Der obige Algorithmus sieht in Python so aus:
 +
 +<code python>
 +print("Bestimmung der Teiler einer Zahl")  
 +s = input("Gib eine Zahl ein: ")
 +x = int(s)
 +t = 1
 +while t <= x:
 +    if x % t == 0: 
 +        print(t)
 +    t = t + 1
 +</code>
 +
 +In vielen anderen Programmiersprachen sähe der Algorithmus übrigens sehr ähnlich aus.
 +
 +<WRAP center round todo>
 +  * Installiere Python vom Microsoft Store. 
 +  * Öffne VS Code. 
 +  * Öffne dein Verzeichnis ''.../informatik/python''.
 +  * Erstelle darin eine neue Datei namens 'teiler.py' (geht per VS Code). (Installiere die VS Code extensions Python und Pylance, wie wohl eh von VS Code vorgeschlagen.)
 +  * Schreibe das obige Python-Programm in diese Datei.
 +  * Ausführen des Programms per ''Ctrl+F5''. (Eingabe von ''F5'' auf Laptop-Tastatur erklärt.) 
 +</WRAP>
 +
 +<WRAP center round todo>
 +Erstelle eine neue Datei namens ''gerade-zahlen.py'' in deinem Verzeichnis ''.../informatik/python''. (Wann immer du in Zukunft ein neues Python-Programm schreibst, erstelle eine neue Datei.
 +
 +Schreibe nun ein Programm, das alle geraden Zahlen von 0 bis zu einer eingegebenen natürlichen Zahl ausgibt.
 +
 +(Finde zwei Lösungen für dieses Problem! Die einfachere davon funktioniert ohne if-then-statement.)
 +</WRAP>
 +
 +<WRAP center round todo>
 +Kopiere dein Programm ''gerade-zahlen.py'' (geht in VS Code), nenne die Kopie ''gerade-zahlen-rueckwaerts.py'' und ändere dieses Programm nun so, dass die geraden Zahlen in absteigender Reihenfolge ausgegeben werden.
 +</WRAP>
 +
 +
 +==== Allgemeines zu Programmiersprachen ====
 +  * [[https://de.wikipedia.org/wiki/Programmiersprache|Programmiersprachen]] sind von Menschen entworfene Sprachen (vergleichbar zu [[https://de.wikipedia.org/wiki/Plansprache|Plansprachen]] wie Esperanto oder Volapük im Gegensatz zu [[https://de.wikipedia.org/wiki/Nat%C3%BCrliche_Sprache|natürlichen Sprachen]] wie Englisch, Deutsch, Chinesisch etc.).
 +  * Es gibt sehr viele Programmiersprachen (ca. 600 im Jahr 2020), vgl. https://de.wikipedia.org/wiki/Zeittafel_der_Programmiersprachen.
 +  * Meist verwenden Programmiersprachen Wörter aus dem Englischen als [[https://de.wikipedia.org/wiki/Schl%C3%BCsselwort_(Programmierung)|Schlüsselwörter]].
 +  * Wir lernen die Programmiersprache [[https://de.wikipedia.org/wiki/Python_(Programmiersprache)#Entwicklungsumgebung|Python]]. Sie wurde Anfang der 1990er Jahre von Guido von Rossum entwickelt. Sie wird kontinuierlich weiterentwickelt. 
 +  * Python ist (heutzutage, Jahr 2022) eine der populärsten Sprachen, vgl. etwa https://www.youtube.com/watch?v=Og847HVwRSI
 +  * Mit Python kann man "alle" Apps programmieren, die man auf dem Computer oder auf dem Handy verwendet. (Dasselbe gilt für jede halbwegs mächtige Programmiersprache.) 
 +  * Die offizielle Website für Python: https://www.python.org/
 +  * Es gibt viele Python-Tutorials im Netz, etwa https://www.w3schools.com/python/default.asp. (Ich finde die Tutorials von W3Schools meist sehr hilfreich.)
 +