i

Beispiel - Tage zählen

Doppelt so alt

Wann bist du doppelt so alt wie heute?

Kinder und Erwachsener[1]

Aufgabe 1

(a) Schätze erst mal grob ab

(b) Erläutere die Schwierigkeiten, die auftreten, wenn man die Frage genau beantworten möchte.

Ein erstes Programm zum Tagezählen

Das folgende Programm nimmt einem das mühsame Abzählen von Tagen ab. Du kannst die vorgegebenen Datumsangaben abändern und das Programm dann ausführen.

Aufgabe 2

(a) Das Programm arbeitet korrekt. Teste das mit geeigneten Datumsangaben.

(b) Das Programm ist aber recht lang und unübersichtlich. Es fällt auch auf, dass Teile des Programms mehrfach auftauchen. Diskutiere, welche Nachteile das hat.

Bausteinen zum Tagezählen

Die Funktionen zum Tagezählen werden jetzt als kommentierte Bausteine zur Verfügung gestellt.

Aufgabe 3

(a) Erläutere, was die Kommentierung in den Funktionsdefinitionen jeweils beschreiben.

(b) Ergänze und teste weitere Funktionsaufrufe.

(c) Die Bausteine zum Tagezählen kann man in anderen Programmen verwenden. Hierzu muss man die Datei mit den Bausteinen (hier: tagezaehlen.py) erst einmal importieren. Teste das selbst in einer Python-Entwicklungsumgebung (wie z.B. Thonny). Beachte, dass das Programm mit den Bausteinen und das neu erstellte Programm im selben Ordner liegen.

# Import von Bausteinen
from tagezaehlen import *

# Verwendung der Bausteine
# Initialisierung
datumGeburt = (11, 11, 2002)
datumHeute = (1, 1, 2021)
# Verarbeitung
anzahlTage = 0
datum = datumGeburt
while datum != datumHeute:
    datum = naechstesDatum(datum)
    anzahlTage = anzahlTage + 1
while anzahlTage > 0:
    datum = naechstesDatum(datum)
    anzahlTage = anzahlTage - 1
# Ausgabe
print("geboren am:", datumGeburt)
print("heute:", datumHeute)
print("doppelt so alt am:", datum)

(d) Ändere das Programm so ab, dass man das Datum erhält, an dem man halb so alt war.

Quellen

Suche

v
6.3.2.12.1
dev.inf-schule.de/imperative-programmierung/python/konzepte/module/beispiel_tagezaehlen
dev.inf-schule.de/6.3.2.12.1
dev.inf-schule.de/@/page/mofHD0HIYQ82iEtw

Rückmeldung geben