Python Zusatzaufgaben

Schwierigkeitsgrad: Einfach

Nötiges Vorwissen:

  • Basics Bewegung Turtle
  • Input
  • Formattierter Output
  • Basics Berechnungen
  • Variablen

Auftrag:

  1. Zuerst soll der Benutzer nach einigen Angaben gefragt werden:
    - Vorname
    - Nachname
    - Jahrgang
    - aktuelle Uhrzeit (also nur Stunde davon). Falls jetzt 15:09 Uhr ist, soll 3 eingegeben werden.

  2. Alle diese Eingaben sollen in passend benannten Variablen gespeichert werden.

  3. Der Benutzer soll freundlich begrüsst werden. Zum Beispiel: „Guten Tag, Vreni Schneider.“

  4. Aus dem Jahrgang soll das aktuelle Alter berechnet werden und in einem Sätzli ausgegeben werden. Zum Beispiel: „Du bist 37 Jahre alt“.

  5. 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.

Schwierigkeitsgrad: Mittel

Vorwissen: Bis und mit Kapitel While-Schlaufe

Name des Files: taschenrechner.py

Programmiere einen einfachen Taschenrechner für ganze Zahlen, mit welchem man Addieren, Subtrahieren, Multiplizieren und mit Rest Dividieren kann.

Schritt 1

Der User soll gefragt werden, welche Operation er durchführen möchte: Addition, Subtraktion, Multiplikation oder Division (mit Rest). Damit man nicht viel schreiben muss, könnte man jeder Operation eine Zahl oder ein Buchstabe zuordnen. Über zwei Inputs soll man dann hintereinander die beiden Zahlen eingeben können. Das Resultat wird berechnet und ausgegeben.

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

Man soll beliebig viele Operationen hintereinander durchführen können. Stichwort: 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-Schlaufe kann man mit dem Befehl break ausbrechen.

Schritt 3

Schreibe nun den Multiplikationsblock und den Divisionsblock selbst. Du darfst nur Additionen und Subtraktionen verwendest!

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.

Schritt 5 (optional, anspruchsvoll)

Gestalte nun einen Taschenrechner mit einer graphischen Oberfläche mithilfe von TurtleGraphics.

Schwierigkeitsgrad: Anspruchsvoll

Vorwissen: Bis und mit Kapitel While-Schlaufe

Name des Files: sbb_uhr.py

Programmiere mit TurtleGraphics eine 'analoge Uhr', welche die aktuelle Uhrzeit anzeigt. Die Uhr soll Stunden einen Stundenzeiger, Minutenzeiger und Sekundenzeiger haben.

Die aktuelle Uhrzeit kannst du mit dem datetime Modul abrufen, welches du zuerst noch importieren musst:

datetime.py
from datetime import datetime
 
now = datetime.now()

Die Stunde, Minute und Sekunde erhälst du dann wie folgt: now.hour, now.minute, now.second

Die Uhr soll schön gestaltet werden. Beispiel: SBB-Uhr.

Hintergrundbild:

Bild einfügen:

fritz = Turtle()
Options.setPlaygroundSize(1000,1000)
fritz.drawImage("sbb.jpg")

Wichtig: Bild muss in gleichem Ordner abgelegt werden, wie sich das Projekt befindet.

Schwierigkeitsgrad: Anspruchsvoll

Vorwissen: Bis und mit Kapitel While-Schlaufe

Name des Files: digitale_uhr.py

Programmiere mit TurtleGraphics eine 'digitale Uhr', welche die aktuelle Uhrzeit anzeigt. Angezeigt werden sollen: Stunde:Minute: Sekunde

Die aktuelle Uhrzeit kannst du mit dem datetime Modul abrufen. Mehr Info dazu findest du bei der Aufgabe SBB-Uhr.

Schwierigkeitsgrad: Anspruchsvoll

Vorwissen: Bis und mit Kapitel While-Schlaufe

Name des Files: euklid.py

Der Euklidische Algorithmus ist sehr hilfreich zur Bestimmung des größten gemeinsamen Teilers (ggT). Wenn man zwei Zahlen a und b gegeben hat, dann bestimmt man den größten gemeinsamen Teiler ggT(a,b) von a und b folgendermaßen:

  1. Teile (mit Rest) die größere der beiden Zahlen durch die kleinere.
  2. Teile nun die kleinere der beiden Zahlen durch den Rest der bei Schritt 1 herauskommt.
  3. Teile nun den Rest der bei Schritt 1 herauskommt durch den Rest der bei Schritt 2 herauskommt.
  4. Teile nun den Rest der bei Schritt 2 herauskommt durch den Rest der bei Schritt 3 herauskommt.
  5. Führe dies sooft durch bis bei einer Rechnung der Rest 0 herauskommt.
  6. Der Divisor bei dieser Rechnung ist der ggT der Zahlen a und b.

Beispiel mit Zahlen

Es ist der ggT von 544 und 391 gesucht.
$544:391 = 1$; Rest 153
$391:153 = 2$; Rest 85
$153:85 = 1$; Rest 68
$85:68 = 1$; Rest 17
$68:17 = 4$; Rest 0
Die Divison geht auf, der ggT von 544 und 391 ist 17.

Auftrag

Versuche ein Programm zu schreiben, bei welchem mithilfe des Euklidischen Algorithmus' der ggT von zwei Zahlen berechnet wird.

Schwierigkeitsgrad: Mittel

Vorwissen: Bis und mit Kapitel Farben

Name des Files: kandinsky.py

Wassily Kandinsky (1866-1944) war ein russischer Maler, der für seine abstrakten Gemälde berühmt ist.

Auftrag 1: Schreibe einen Code, der mithilfe von Turtlegraphics Kandinskys Bild möglichst gut reproduziert:

Speichere das Bild unter dem Namen kandinsky_1.py

Auftrag 2: Schaue dir ein paar weitere Bilder von Kandinsky an (z.B. hier: https://www.wassilykandinsky.net/painting1896-1944.php). Zeichne dann mit Turtlegraphics deinen eigenen Kandinsky.

Speichere das Bild unter dem Namen kandinsky_2.py

Schwierigkeitsgrad: Einfach

Vorwissen: Funktionen

Bueno

Definiere die Funktion bueno(n). Ein Kinder-Bueno kostet am KSR Selecta-Automat 1.30 Fr. Die Funktion soll zurückgeben, wieviel n Buenos kosten.

Wieviel kosten: 3, 7 und 1200 Buenos? Wieviel Geld gibst du pro Monat oder Jahr etwa für Buenos aus?

BMI

Definiere eine Funktion bmi(m,l), die die Masse $m$ (in kg) und die Grösse $l$ (in Metern) entgegen nimmt und den entsprechenden Body Mass Index (BMI) zurückgibt. Die Formel für diesen ist $m/l^2$. Siehe: https://de.wikipedia.org/wiki/Body-Mass-Index

Welchen BMI haben Fritz (110kg, 1.72m) und Monika (65kg, 1.64m)?

Kleinere Zahl

Definiere die Funktion nimm_kleinere(a,b). Diese nimmt zwei Zahlen entgegen und gibt die kleinere der beiden zurück.

Teste die Funktion anhand von drei unterschiedlichen Beispielen.

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?id=gf_informatik_1m_20_21:python_grundlagen#aufgabe_f3 wird erklärt, wie man Zufallszahlen generiert.

  • 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.
  • Füge zu den 6 Zufallszahlen jetzt noch die Zusatzzahl (Zufallszahl zwischen 1 und 6) am Ende der Liste hinzu.
  • (anspruchsvoll) Im Lotto kommt bei den 6 Lottozahlen keine Zahl zweimal vor, d.h. Zahlen dürfen nicht wiederholt werden. Ergänze deinen Code entsprechend.
  • gf_informatik/programmieren_zusatzaufgaben.1639652836.txt.gz
  • Zuletzt geändert: 2021-12-16 11:07
  • von sca