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 [2022-11-29 11:26] – [Taschenrechner] gra | 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. | ||