~~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 ==== 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. ==== Pseudo-Code ==== 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. === 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.) {{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|}} ==== Python-Programm ==== Der obige Algorithmus sieht in Python so aus: 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 In vielen anderen Programmiersprachen sähe der Algorithmus übrigens sehr ähnlich aus. * 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.) 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.) 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. ==== 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.)