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_zusatzaufgaben [2021-12-16 11:11] – sca | gf_informatik:programmieren_zusatzaufgaben [2023-02-17 08:36] (aktuell) – [Lotto] sca | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Python Zusatzaufgaben ====== | ====== Python Zusatzaufgaben ====== | ||
| - | ===== Begrüssung | + | ==== Begrüssung ==== |
| **Schwierigkeitsgrad: | **Schwierigkeitsgrad: | ||
| - | **Nötiges Vorwissen: | + | **Nötiges Vorwissen: |
| - | * Basics Bewegung Turtle | + | |
| - | * Input | + | |
| - | * Formattierter Output | + | |
| - | * Basics Berechnungen | + | |
| - | * Variablen | + | |
| **Auftrag: | **Auftrag: | ||
| Zeile 18: | Zeile 13: | ||
| - Nachname\\ | - Nachname\\ | ||
| - Jahrgang\\ | - Jahrgang\\ | ||
| - | - aktuelle Uhrzeit (also nur Stunde davon). Falls jetzt 15:09 Uhr ist, soll `3` eingegeben werden.\\ \\ | + | - aktuelle Uhrzeit (also nur Stunde davon). Falls jetzt 15:09 Uhr ist, soll `3` eingegeben werden. |
| - | + | 1. Alle diese Eingaben sollen in passend benannten Variablen gespeichert werden. | |
| - | 1. Alle diese Eingaben sollen in passend benannten Variablen gespeichert werden.\\ \\ | + | 1. Der Benutzer soll freundlich begrüsst werden. Zum Beispiel: "Guten Tag, Vreni Schneider." |
| - | + | 1. Aus dem Jahrgang soll das aktuelle Alter berechnet werden und in einem Sätzli ausgegeben werden. Zum Beispiel: "Du bist 37 Jahre alt". | |
| - | 1. Der Benutzer soll freundlich begrüsst werden. Zum Beispiel: "Guten Tag, Vreni Schneider." | + | |
| - | + | ||
| - | 1. Aus dem Jahrgang soll das aktuelle Alter berechnet werden und in einem Sätzli ausgegeben werden. Zum Beispiel: "Du bist 37 Jahre alt".\\ \\ | + | |
| 1. Mit einem Turtle soll, entsprechend einer analogen Uhr, die Zeit angegeben werden. Falls der Benutzer `3` eingegeben hat (es ist also z.B. 15:38 Uhr oder 03:16 Uhr), so soll die Turtle im Uhrzeigersinn eine 4tel Umdrehung ablaufen. | 1. Mit einem Turtle soll, entsprechend einer analogen Uhr, die Zeit angegeben werden. Falls der Benutzer `3` eingegeben hat (es ist also z.B. 15:38 Uhr oder 03:16 Uhr), so soll die Turtle im Uhrzeigersinn eine 4tel Umdrehung ablaufen. | ||
| - | ===== Taschenrechner | + | ==== Taschenrechner ==== |
| **Schwierigkeitsgrad: | **Schwierigkeitsgrad: | ||
| - | **Vorwissen: | + | **Vorwissen: |
| **Name des Files:** // | **Name des Files:** // | ||
| Zeile 37: | Zeile 29: | ||
| Programmiere einen einfachen Taschenrechner für ganze Zahlen, mit welchem man Addieren, Subtrahieren, | Programmiere einen einfachen Taschenrechner für ganze Zahlen, mit welchem man Addieren, Subtrahieren, | ||
| - | ==== Schritt 1 ==== | + | === Schritt 1 === |
| Der User soll gefragt werden, welche Operation er durchführen möchte: Addition, Subtraktion, | Der User soll gefragt werden, welche Operation er durchführen möchte: Addition, Subtraktion, | ||
| Zeile 45: | Zeile 37: | ||
| //Tipp:// Die Division mit Rest ist in Python bereits vorprogrammiert. Beispiel: 20 / 6 = 3 Rest 2. Den Ganzzahlquotienten 3 erhält man mit der Operation `20//6` und der Rest mit `20%6`. | //Tipp:// Die Division mit Rest ist in Python bereits vorprogrammiert. Beispiel: 20 / 6 = 3 Rest 2. Den Ganzzahlquotienten 3 erhält man mit der Operation `20//6` und der Rest mit `20%6`. | ||
| - | ==== Schritt 2 ==== | + | === Schritt 2 === |
| - | Man soll beliebig viele Operationen hintereinander durchführen können. Stichwort: while-Schlaufe. | + | Man soll beliebig viele Operationen hintereinander durchführen können. Stichwort: while-Schleife. |
| - | Man soll auch die Möglichkeit haben, das Programm zu verlassen, z.B. wenn man die //Q// (für Quit) eingibt. //Tipp:// Aus einer while-Schlaufe | + | Man soll auch die Möglichkeit haben, das Programm zu verlassen, z.B. wenn man die //Q// (für Quit) eingibt. //Tipp:// Aus einer while-Schleife |
| - | ==== Schritt 3 ==== | + | === Schritt 3 === |
| - | Schreibe nun den Multiplikationsblock und den Divisionsblock selbst. Du darfst **nur Additionen und Subtraktionen** | + | Schreibe nun den Multiplikationsblock und den Divisionsblock selbst. Du darfst **nur Additionen und Subtraktionen** |
| - | ==== Schritt 4 ==== | + | === Schritt 4 === |
| Verpasse deinem Code nun noch den Feinschliff. Zum Beispiel sollst du dir überlegen, wie dein Code reagieren soll, wenn der User eine nicht vorgesehene Eingabe macht. | Verpasse deinem Code nun noch den Feinschliff. Zum Beispiel sollst du dir überlegen, wie dein Code reagieren soll, wenn der User eine nicht vorgesehene Eingabe macht. | ||
| - | ==== Schritt 5 (optional, anspruchsvoll) | + | === Schritt 5 (optional, anspruchsvoll) === |
| Gestalte nun einen Taschenrechner mit einer graphischen Oberfläche mithilfe von TurtleGraphics. | Gestalte nun einen Taschenrechner mit einer graphischen Oberfläche mithilfe von TurtleGraphics. | ||
| - | ===== SBB-Uhr | + | ==== SBB-Uhr ==== |
| - | **Schwierigkeitsgrad: | + | **Schwierigkeitsgrad: |
| - | **Vorwissen: | + | **Vorwissen: |
| **Name des Files:** // | **Name des Files:** // | ||
| Zeile 97: | Zeile 89: | ||
| Wichtig: Bild muss in gleichem Ordner abgelegt werden, wie sich das Projekt befindet. | Wichtig: Bild muss in gleichem Ordner abgelegt werden, wie sich das Projekt befindet. | ||
| - | ===== Digitale Uhr ===== | + | ==== Digitale Uhr ==== |
| - | **Schwierigkeitsgrad: | + | **Schwierigkeitsgrad: |
| - | **Vorwissen: | + | **Vorwissen: |
| **Name des Files:** // | **Name des Files:** // | ||
| Zeile 109: | Zeile 101: | ||
| Die aktuelle Uhrzeit kannst du mit dem // | Die aktuelle Uhrzeit kannst du mit dem // | ||
| - | ===== Euklidischer Algorithmus ===== | + | ==== Euklidischer Algorithmus ==== |
| **Schwierigkeitsgrad: | **Schwierigkeitsgrad: | ||
| - | **Vorwissen: | + | **Vorwissen: |
| **Name des Files:** // | **Name des Files:** // | ||
| Zeile 137: | Zeile 130: | ||
| Versuche ein Programm zu schreiben, bei welchem mithilfe des Euklidischen Algorithmus' | Versuche ein Programm zu schreiben, bei welchem mithilfe des Euklidischen Algorithmus' | ||
| - | ===== Kandinsky | + | ==== Kandinsky ==== |
| **Schwierigkeitsgrad: | **Schwierigkeitsgrad: | ||
| - | **Vorwissen: | + | **Vorwissen: |
| **Name des Files:** // | **Name des Files:** // | ||
| Zeile 157: | Zeile 150: | ||
| Speichere das Bild unter dem Namen `kandinsky_2.py` | Speichere das Bild unter dem Namen `kandinsky_2.py` | ||
| - | ===== einfache Funktionen | + | ==== einfache Funktionen ==== |
| **Schwierigkeitsgrad: | **Schwierigkeitsgrad: | ||
| Zeile 183: | Zeile 176: | ||
| Teste die Funktion anhand von drei unterschiedlichen Beispielen. | Teste die Funktion anhand von drei unterschiedlichen Beispielen. | ||
| - | ===== Lotto ===== | + | ==== Lotto ==== |
| Das Ziel dieser Aufgabe ist es, einen Generator für Lottozahlen zu erstellen. Im Schweizer Lotto werden 6 aus 42 Zahlen gezogen plus eine Zusatzzahl zwischen 1 und 6. Schreibt diese 6 Zahlen in eine Liste und an der letzten Stelle dieser Liste soll die Zusatzzahl stehen. \\ | Das Ziel dieser Aufgabe ist es, einen Generator für Lottozahlen zu erstellen. Im Schweizer Lotto werden 6 aus 42 Zahlen gezogen plus eine Zusatzzahl zwischen 1 und 6. Schreibt diese 6 Zahlen in eine Liste und an der letzten Stelle dieser Liste soll die Zusatzzahl stehen. \\ | ||
| - | Tipp: Hier: https://sca.ksr.ch/doku.php? | + | Zufallszahlen generierst du wie folgt: |
| + | <code python> | ||
| + | import random | ||
| + | random.randint(1, | ||
| + | </code> | ||
| - | - In einem ersten Teil sollen einfach 6 Zufallszahlen zwischen 1 und 42 erzeugt werden und in eine Liste geschrieben werden. Diese Liste soll zum Schluss ausgegeben werden. | + | |
| - | | + | 1. Füge zu den 6 Zufallszahlen jetzt noch die Zusatzzahl (Zufallszahl zwischen 1 und 6) am Ende der Liste hinzu. |
| - | - (anspruchsvoll) | + | 1. Knacknuss: |
| - | ===== Zahlenraten | + | ==== Zahlenraten ==== |
| **Ziel**: ein Konsolen-Spiel, | **Ziel**: ein Konsolen-Spiel, | ||
| Zeile 201: | Zeile 198: | ||
| * ... gibt es auch eine Lösung, wenn der mögliche Wertebereich der geheimen Zahl (-∞, ∞) ist? | * ... gibt es auch eine Lösung, wenn der mögliche Wertebereich der geheimen Zahl (-∞, ∞) ist? | ||
| - | ===== Hangman ===== | + | ==== Hangman ==== |
| + | |||
| + | **Ziel**: | ||
| + | * Implementiere das Spiel [[https:// | ||
| + | * Anstelle eines Galgens darf natürlich auch eine andere, gewaltfreie Zeichnung angefertigt werden. | ||
| + | |||
| + | **Varianten**: | ||
| + | * **Variante 1:** Spieler:in 1 tippt ein geheimes Wort (z.B. " | ||
| + | * **Variante 2:** Im Code gibt es eine sehr lange Liste mit möglichen Wörtern. Der Computer wählt das geheimes Wort aus dieser Liste zufällig aus. Der Rest des Spiels ist wie in Variante 1. | ||
| + | |||
| + | |||
| + | **Tipps:** | ||
| - | Implementiere [[https:// | + | * Wandle alle Buchstaben und Wörter mit `upper()` in Grossbuchstaben um, damit du dich nicht mit Gross-/Kleinschreibweise herumschlagen musst. |
| - | **Ziel**: Der Computer wählt ein geheimes Wort aus einer langen Liste von Möglichkeiten. Der Benutzer muss Buchstaben erraten, die im Wort vorkommen. Beim Erfolg werden die richtigen Buchstaben mit `turtle.write()` ausgegeben. Kommt der geratene Buchstabe nicht vor, wird fortlaufend ein Galgen gezeichnet. Ist der Galgen fertig, hat der Spieler verloren. | ||