Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_ii:variablen_verzweigungen_schleifen [2022-10-26 09:54] hofgf_informatik:programmieren_ii:variablen_verzweigungen_schleifen [2023-10-22 10:21] (aktuell) – [Tabelle] 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 import *` weg lassen.+*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 import *` weglassen.
  
  
 ==== - Variablen ==== ==== - Variablen ====
  
-In **Variablen** werden Werte gespeichert, die man im Laufe des Programms lesen oder verändern will. Variablen haben einen Namen und einen Wert. Der Name der Variable darf man frei wählen. Nicht erlaubt sind allerdings die Schüsselwörter (z.B. *from*, *repeat*, ...) und Namen mit Sonderzeichen.+In **Variablen** werden Werte gespeichert, die man im Laufe des Programms lesen oder verändern will. Variablen haben einen Namen und einen Wert. Den Namen der Variable darf man frei wählen. Nicht erlaubt sind allerdings die Schüsselwörter (z.B. *from*, *repeat*, ...) und Namen mit Sonderzeichen.
  
 Variablen kannst du ganz einfach deklarieren: `<Name der Variablen> = <Wert der Variablen>` Variablen kannst du ganz einfach deklarieren: `<Name der Variablen> = <Wert der Variablen>`
Zeile 49: Zeile 49:
 Einige wichtige **mathematischen Operatoren** sind: Einige wichtige **mathematischen Operatoren** sind:
  
-^ Funktion ^ Python-Code ^ +^ Funktion ^ Python-Code ^ Resultat 
-| 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 84: Zeile 83:
 ==== - Aufgaben D ==== ==== - Aufgaben D ====
  
-Von nun an arbeiten wir nur noch selten mit TurtleGraphics. Die Zeile `from gturtle import *` wird also nicht gebraucht und kann weggelassen werden.+Von nun an arbeiten wir nur noch selten mit TurtleGraphics. Die Zeile `from turtle import *` wird also nicht gebraucht und kann weggelassen werden.
  
 === Aufgabe D1 === === Aufgabe D1 ===
Zeile 108: Zeile 107:
  
 === 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)`.
  
Zeile 119: Zeile 117:
    * 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: Der kleinste Halbkreis wird mit diesem Radius gezeichnet.
 +  * Zunahme: Um diesen Wert wird der Radius jedes Halbkreises grösser als der vorherige.
  
 ===== - Logik: if-else ===== ===== - Logik: if-else =====
Zeile 124: Zeile 130:
 Beim Programmieren kommt man oft in die Situation, wo man **Entscheidungen** treffen muss. Zum Beispiel soll, je nach dem was der Benutzer eintippt, ein anderer Code ausgeführt werden. Beim Programmieren kommt man oft in die Situation, wo man **Entscheidungen** treffen muss. Zum Beispiel soll, je nach dem was der Benutzer eintippt, ein anderer Code ausgeführt werden.
  
-Am einfachsten ist der sogenannte **if**-Befehl: Damit kann man überprüfen ob (also //if//) eine gewisse Bedingung erfüllt ist oder nicht. Dieser Befehl hat die Form+Am einfachsten ist der sogenannte **if**-Befehl: Damit kann man überprüfenob (also //if//) eine gewisse Bedingung erfüllt ist oder nicht. Dieser Befehl hat die Form
  
 <code python> <code python>
Zeile 138: Zeile 144:
 **Bedingungen** können zum Beispiel sein: **Bedingungen** können zum Beispiel sein:
  
-^ Bedingung ^ Erklährung +^ Bedingung       **Erklärung**                                  
-| `x == 4` | x ist Zahl und hat Wert von genau 4 | +| `x == 4`        | x ist Zahl und hat Wert von genau 4            
-| `s == "Hallo"` | s ist String und hat genau den Inhalt "Hallo"+| `s == "Hallo" | s ist String und hat genau den Inhalt "Hallo"  
-| `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 ist Zahl grösser als 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 ist Zahl kleiner als 5                       
-| `x <= 5` | x ist Zahl kleiner gleich 5 |+| `x <= 5`        | x ist Zahl kleiner gleich 5                    |
  
 **Wichtig:** Beachte das **Doppelgleichzeichen** `==`. Eine Bedingung mit nur einem Gleichzeichen wie z.B. `x = 4` funktioniert nicht! **Wichtig:** Beachte das **Doppelgleichzeichen** `==`. Eine Bedingung mit nur einem Gleichzeichen wie z.B. `x = 4` funktioniert nicht!
Zeile 198: Zeile 204:
  
  
-==== - Aufgaben ====+==== - Aufgaben ====
  
-=== Aufgabe F1 ===+=== Aufgabe E1 ===
  
 Nimm den Code aus dem Beispiel als Startpunkt. In diesem wird eine Zahl eingeben wird und dann entschieden, ob die Zahl positiv oder negativ ist. Erweitere den Code nun so, dass zwischen den folgenden drei Fällen unterschieden wird: Nimm den Code aus dem Beispiel als Startpunkt. In diesem wird eine Zahl eingeben wird und dann entschieden, ob die Zahl positiv oder negativ ist. Erweitere den Code nun so, dass zwischen den folgenden drei Fällen unterschieden wird:
Zeile 210: Zeile 216:
 //Tipp:// Hier benötigst du einen //if-elif-else//-Befehl. //Tipp:// Hier benötigst du einen //if-elif-else//-Befehl.
  
-=== Aufgabe F2 ===+=== Aufgabe E2 ===
  
 Schreibe ein Programm, in dem der Benutzer eine Figur wünschen kann, die der Turtle dann abläuft. Diese sollen sein: Schreibe ein Programm, in dem der Benutzer eine Figur wünschen kann, die der Turtle dann abläuft. Diese sollen sein:
Zeile 221: Zeile 227:
 *Optional: Füge weitere Figuren hinzu. *Optional: Füge weitere Figuren hinzu.
  
-=== Aufgabe F3 ===+=== Aufgabe E3 ===
  
 == Schritt 1 == == Schritt 1 ==
Zeile 236: Zeile 242:
 import random # schreibe dies ganz oben in deinem Code import random # schreibe dies ganz oben in deinem Code
 ... ...
-= random.randint(0,10) # wählt zufällig eine Zahl aus den Zahlen 0,1,2,3,...,9,10 aus+zahl1 = random.randint(0,10) # wählt zufällig eine Zahl aus den Zahlen 0,1,2,3,...,9,10 aus
 ... ...
 </code> </code>
Zeile 255: Zeile 261:
 </code> </code>
  
-Die Bedingungen schreibt man gleich wie für for-Schleifen, also `==, >, >=, ...`+Die Bedingungen schreibt man gleich wie für if-Verzweigungen, also `==, >, >=, ...`
  
 **Beispiel:** Im folgenden Programm wird man aufgefordert, eine positive Zahl einzugeben. Man kann solange weiterspielen, bis man etwas eingibt, was //keine// positive Zahl ist, also z.B. eine negative Zahl oder Text. **Beispiel:** Im folgenden Programm wird man aufgefordert, eine positive Zahl einzugeben. Man kann solange weiterspielen, bis man etwas eingibt, was //keine// positive Zahl ist, also z.B. eine negative Zahl oder Text.
Zeile 282: Zeile 288:
 Eine Möglichkeit gibt es aber, aus eine Schleife wie der oberen (`while True: ...`) auszubrechen: Wird der Befehl `break` aufgerufen, wird die **Schleife umgehend abgebrochen** und der Code unterhalb wird ausgeführt.  Eine Möglichkeit gibt es aber, aus eine Schleife wie der oberen (`while True: ...`) auszubrechen: Wird der Befehl `break` aufgerufen, wird die **Schleife umgehend abgebrochen** und der Code unterhalb wird ausgeführt. 
  
-==== - Aufgaben ====+==== - Aufgaben ====
  
-=== Aufgabe G1 ===+=== Aufgabe F1 ===
  
 Schreibe ein Programm, in dem man eine zweistellige Zahl eingeben soll. Dies soll man solange machen können, bis man diese Bedingung einmal nicht mehr erfüllt. Schreibe ein Programm, in dem man eine zweistellige Zahl eingeben soll. Dies soll man solange machen können, bis man diese Bedingung einmal nicht mehr erfüllt.
Zeile 298: Zeile 304:
 </code> </code>
  
-=== Aufgabe G2 ===+=== Aufgabe F2 ===
 Oft wollen wir einen Schritt eine bestimmte Anzahl mal wiederholen. In TigerJython können wir dazu `repeat` verwenden, was aber in Python nicht unterstützt wird. Wie kannst du die gleiche Funktionalität erhalten mit `while`? Oft wollen wir einen Schritt eine bestimmte Anzahl mal wiederholen. In TigerJython können wir dazu `repeat` verwenden, was aber in Python nicht unterstützt wird. Wie kannst du die gleiche Funktionalität erhalten mit `while`?
  
 Schreibe Turtle Code, der ein Quadrat zeichnet, aber verwende dazu nur `while`. Schreibe Turtle Code, der ein Quadrat zeichnet, aber verwende dazu nur `while`.
  
-=== Aufgabe G3 === +=== Aufgabe F3 === 
-Erweitere nun dein Spiel aus F3 wie folgt:+Erweitere nun dein Spiel aus E3 wie folgt:
  
 == Schritt 1 == == Schritt 1 ==
Zeile 311: Zeile 317:
 ''Du hast 7 von 10 Aufgaben richtig gelöst.'' ''Du hast 7 von 10 Aufgaben richtig gelöst.''
  
-=== Aufgabe G4 (optional) ===+=== Aufgabe F4 (optional) ===
  
 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 G5 ===+
  
 Mache eine Kopie von deinem Mathe-Quiz aus der letzten Aufgabe.  Mache eine Kopie von deinem Mathe-Quiz aus der letzten Aufgabe. 
Zeile 330: Zeile 334:
 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, bis sie wirklich eine positive, zweistellige Zahl eingegeben hat. 
 +  * 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.
  
  • gf_informatik/programmieren_ii/variablen_verzweigungen_schleifen.1666778040.txt.gz
  • Zuletzt geändert: 2022-10-26 09:54
  • von hof