Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:programmieren_ii:variablen_verzweigungen_schleifen [2022-10-26 17:02] – [2. Logik: if-else] gra | gf_informatik:programmieren_ii:variablen_verzweigungen_schleifen [2025-11-09 08:33] (aktuell) – [Aufgabe D4] hof | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| Neben Turtlegrafik kann man in TigerJython und Python auch noch andere Dinge machen, die Spass machen, wie z.B. Mathe. | Neben Turtlegrafik kann man in TigerJython und Python auch noch andere Dinge machen, die Spass machen, wie z.B. Mathe. | ||
| - | *Tipp:* Möchtest du nur z.B. etwas berechnen, ohne dabei eine Turtle zu gebrauchen? Dann kannst du die zuvor immer benötigte Zeile Code `from gturtle | + | *Tipp:* Möchtest du nur z.B. etwas berechnen, ohne dabei eine Turtle zu gebrauchen? Dann kannst du die zuvor immer benötigte Zeile Code `from turtle |
| ==== - Variablen ==== | ==== - Variablen ==== | ||
| - | In **Variablen** werden Werte gespeichert, | + | In **Variablen** werden Werte gespeichert, |
| Variablen kannst du ganz einfach deklarieren: | Variablen kannst du ganz einfach deklarieren: | ||
| Zeile 49: | Zeile 49: | ||
| Einige wichtige **mathematischen Operatoren** sind: | Einige wichtige **mathematischen Operatoren** sind: | ||
| - | ^ Funktion ^ Python-Code ^ | + | ^ Funktion ^ Python-Code |
| - | | Addition | `7+3` | | + | | Addition | `5+2` | `7` | |
| - | | Subtraktion | `7-3` | | + | | Subtraktion | `5-2` | `3` | |
| - | | Multiplikation | `7*3` | | + | | Multiplikation | `5*2` | `10` | |
| - | | Division (Nachkommastellen) | `7/3` | | + | | Division (Nachkommastellen) | `5/2` | `2.5` | |
| - | | Ganzzahldivision | `7//3` | | + | | Ganzzahldivision | `5//2` | `2` | |
| - | | Hoch (z.B. 2 hoch 5) | `2**5` | | + | | Hoch (z.B. 2 hoch 5) | `5**2` | `25` | |
| - | | Wurzel (z.B. Wurzel von 2, sqrt für square-root) | `sqrt(2)` | | + | | Wurzel (z.B. Wurzel von 2, sqrt für square-root) | `sqrt(2)` | `1.4142135...` | |
| - | | Modulo (Rest der Ganzzahl-Division, Bsp. `17%5 = 2`) | `17%2`| | + | | Modulo (Rest der Ganzzahl-Division) | `5%2`| `1` | |
| ==== - Input ==== | ==== - Input ==== | ||
| Zeile 64: | Zeile 63: | ||
| <code python> | <code python> | ||
| - | x = input(" | + | x = input(" |
| </ | </ | ||
| - | Mit diesem Code wird der Benutzer aufgefordert, | + | Mit diesem Code wird der Benutzer aufgefordert, |
| Beachte, dass man in die `input()`-Funktion eine Anweisung schreiben kann. | Beachte, dass man in die `input()`-Funktion eine Anweisung schreiben kann. | ||
| + | |||
| + | Beachte, dass `input()` immer einen String zurückgibt. Möchten wir eine Zahl einlesen, so muss das Resultat noch in eine Zahl (`int` für eine ganze Zahl, en. _integer_, `float` für eine Kommazahl, en. _floating point number_) umgewandelt werden: | ||
| + | |||
| + | <code python> | ||
| + | n = int(input(" | ||
| + | </ | ||
| ==== - Formatierte Ausgaben ==== | ==== - Formatierte Ausgaben ==== | ||
| - | Betrachte nochmals | + | Betrachte nochmals |
| Wir hätten nun aber gerne, dass dort der Satz "Das Quadrat der Zahl 7 is 49" ausgegeben wird. Dies erreichen wir mit der folgenden Zeile Code: | Wir hätten nun aber gerne, dass dort der Satz "Das Quadrat der Zahl 7 is 49" ausgegeben wird. Dies erreichen wir mit der folgenden Zeile Code: | ||
| <code python> | <code python> | ||
| - | print(" | + | print(f"Das Quadrat der Zahl {x} is {y}") |
| </ | </ | ||
| - | In der print-Funktion schreiben wir in Anführungs- und Schlusszeichen den Satz, den wir gerne als Ausgabe hätten. Beachte, dass die beiden | + | In der print-Funktion schreiben wir in Anführungs- und Schlusszeichen den Satz, den wir gerne als Ausgabe hätten. Beachte, dass die beiden Variablen `x` und `y` mit geschweiften Klammern umgeben |
| ==== - Aufgaben D ==== | ==== - Aufgaben D ==== | ||
| - | Von nun an arbeiten wir nur noch selten mit TurtleGraphics. Die Zeile `from gturtle | + | Von nun an arbeiten wir nur noch selten mit TurtleGraphics. Die Zeile `from turtle |
| === Aufgabe D1 === | === Aufgabe D1 === | ||
| Zeile 108: | Zeile 113: | ||
| === Aufgabe D3 === | === Aufgabe D3 === | ||
| - | |||
| Mache eine Kopie einer deiner bereits gelösten Aufgaben aus den Aufgaben A und B und speichere diese unter dem Namen `aufgabe_D3.py`. Suche einen möglichst langen und komplizierten Code aus. Füge nun überall wo es möglich ist, Variablen ein. Anstelle, dass du also immer `fritz.left(90)` schreibst, definiere eine Variable `winkel = 90` und schreibe nachher immer `fritz.left(winkel)`. | Mache eine Kopie einer deiner bereits gelösten Aufgaben aus den Aufgaben A und B und speichere diese unter dem Namen `aufgabe_D3.py`. Suche einen möglichst langen und komplizierten Code aus. Füge nun überall wo es möglich ist, Variablen ein. Anstelle, dass du also immer `fritz.left(90)` schreibst, definiere eine Variable `winkel = 90` und schreibe nachher immer `fritz.left(winkel)`. | ||
| === Aufgabe D4 === | === Aufgabe D4 === | ||
| - | Kopiere deinen Code aus Aufgabe D2 und erweitere den Code. Anstelle eines Quadrates soll das Turtle nun ein Rechteck ablaufen. Dazu soll der Benutzer zuerst folgende Werte eingeben (alle mit einem seperatern | + | Kopiere deinen Code aus Aufgabe D2 und erweitere den Code. Anstelle eines Quadrates soll das Turtle nun ein Rechteck ablaufen. Dazu soll der Benutzer zuerst folgende Werte eingeben (alle mit einem seperaten |
| * x-Koordinate des Startpunkts | * x-Koordinate des Startpunkts | ||
| Zeile 119: | Zeile 123: | ||
| * Breite des Rechtecks | * Breite des Rechtecks | ||
| * Höhe des Rechtecks | * Höhe des Rechtecks | ||
| + | |||
| + | |||
| + | === Aufgabe D5 === | ||
| + | |||
| + | Die Schildkröte soll eine Spirale aus mehreren (unterschiedlich grossen) Halbkreisen zeichnen. Die Benutzer:in soll dazu folgende Werte eingeben (alle mit einem seperatern `input`-Statement): | ||
| + | * Anzahl Halbkreise | ||
| + | * Start-Radius: | ||
| + | * Zunahme: Um diesen Wert wird der Radius jedes Halbkreises grösser als der vorherige. | ||
| ===== - Logik: if-else ===== | ===== - Logik: if-else ===== | ||
| Zeile 138: | Zeile 150: | ||
| **Bedingungen** können zum Beispiel sein: | **Bedingungen** können zum Beispiel sein: | ||
| - | ^ Bedingung ^ Erklährung | + | ^ Bedingung |
| - | | `x == 4` | x ist Zahl und hat Wert von genau 4 | | + | | `x == 4` | x ist Zahl und hat Wert von genau 4 | |
| - | | `s == " | + | | `s == " |
| - | | `x != 4` | x ist NICHT eine Zahl vom Wert | | + | | `x != 4` | x ist NICHT eine Zahl vom Wert 4 | |
| - | | `x > 5` | x ist Zahl grösser als 5 | | + | | `x > 5` |
| - | | `x >= 5` | x ist Zahl grösser gleich 5 | | + | | `x >= 5` | x ist Zahl grösser gleich 5 | |
| - | | `x < 5` | x ist Zahl kleiner als 5 | | + | | `x < 5` |
| - | | `x <= 5` | x ist Zahl kleiner gleich 5 | | + | | `x <= 5` | x ist Zahl kleiner gleich 5 | |
| **Wichtig: | **Wichtig: | ||
| Zeile 236: | Zeile 248: | ||
| import random # schreibe dies ganz oben in deinem Code | import random # schreibe dies ganz oben in deinem Code | ||
| ... | ... | ||
| - | x = random.randint(0, | + | zahl1 = random.randint(0, |
| ... | ... | ||
| </ | </ | ||
| Zeile 255: | Zeile 267: | ||
| </ | </ | ||
| - | Die Bedingungen schreibt man gleich wie für for-Schleifen, also `==, >, >=, ...` | + | Die Bedingungen schreibt man gleich wie für if-Verzweigungen, also `==, >, >=, ...` |
| **Beispiel: | **Beispiel: | ||
| Zeile 314: | Zeile 326: | ||
| Gleich wie Aufgabe F3. Es sollen aber neben der Addition auch Subtraktionen und Multiplikationen vorkommen. Die Division sollte weggelassen werden, da es dort schnell Aufgaben gibt, die man kaum lösen kann. Welche der drei Operationen an der Reihe ist, soll ebenfalls der Zufall entscheiden. | Gleich wie Aufgabe F3. Es sollen aber neben der Addition auch Subtraktionen und Multiplikationen vorkommen. Die Division sollte weggelassen werden, da es dort schnell Aufgaben gibt, die man kaum lösen kann. Welche der drei Operationen an der Reihe ist, soll ebenfalls der Zufall entscheiden. | ||
| - | |||
| - | //Tipp:// Verwende eine Endlosschleife. | ||
| === Aufgabe F5 === | === Aufgabe F5 === | ||
| Zeile 330: | Zeile 340: | ||
| Man soll solange spielen können, bis man drei Fehler gemacht hat. Dann ist Game Over. | Man soll solange spielen können, bis man drei Fehler gemacht hat. Dann ist Game Over. | ||
| + | === Aufgabe F6 === | ||
| + | Schreibe eine Programm, das wie folgt funktioniert: | ||
| + | * Die Benutzer:in muss eine positive, zweistellige Zahl eingeben. Hierzu wird sie solange aufgefordert, | ||
| + | * Dann macht das Programm Folgendes: | ||
| + | * Wenn die eingegebene Zahl gerade (also restlos durch 2 teilbar) ist, dann gibt das Programm alle geraden Zahlen von 0 bis zur eingegeben Zahl aus. | ||
| + | * Wenn die eingegebene Zahl ungerade ist, dann gibt das Programm alle Zahlen der Fünfer-Reihe von 0 bis (in etwa) zur eingegeben Zahl aus. | ||