Hey Leute,
ich bin jetzt ein relativer Neuling, was Programmieren betrifft und habe mir deswegen ein Buch heruntergeladen und die Aufgaben nach und nach durchgearbeitet, damit ich mit Python besser umgehen kann.
(https://link.springer.com/book/10.1007/ ... 58-26496-3) - mit diesem Buch arbeite ich zurzeit.
Es geht um folgende Übung: (Seite 28-29)
Schreiben Sie ein Programm 𝑍𝑎𝑒ℎ𝑙𝑚𝑎𝑠𝑠, das eine gegebene Anzahl von Einzelstücken in Gros, Schock und Dutzend umrechnet. Hierzu sind die folgenden Umrechnungsmaße gegeben:
1 Dutzend = 12 Stück
1 Schock = 5 Dutzend
1 Gros = 12 Dutzend
Hinweis: Versenden Sie den Modulo % Operator für den Rest bei der ganzzahligen Division sowie die ganzzahlige Division zur Berechnung der einzelnen Werte.
Testbeispiel:
𝑛=370 : --> Gros = 2, Schock = 1, Dutzend = 1, Stück = 10
𝑛=473 : --> Gros = 3, Schock = 0, Dutzend = 3, Stück = 5
Ich saß da jetzt schon eine Weile dran und hab schon viele andere Übungen erfolgreich machen können, aber bei dieser Aufgabe scheine ich wirklich Probleme zu haben.
Kann mir jemand helfen bzw. zeigen, wie er/sie das Problem lösen würde?
Vielen Dank im Voraus!
Liebe Grüße
SaltyElo
Schwierigkeiten mit einer Aufgabe
@saltyelo,
zunächst sollte man sich überlegen wieviel Stück in jeder Einheit enthalten sind. Dann schaut man mit der Ganzzahl-Division beginnend mit der größten, wie viele man von einer Einheit braucht.
Die Modulo Division sagt einem wie groß der Rest ist.
Den Rest teilt man durch die nächst kleinere Einheit, usw.:
Hier mal zeilenweise mit Kommentaren runtergeschrieben:
zunächst sollte man sich überlegen wieviel Stück in jeder Einheit enthalten sind. Dann schaut man mit der Ganzzahl-Division beginnend mit der größten, wie viele man von einer Einheit braucht.
Die Modulo Division sagt einem wie groß der Rest ist.
Den Rest teilt man durch die nächst kleinere Einheit, usw.:
Hier mal zeilenweise mit Kommentaren runtergeschrieben:
Code: Alles auswählen
# zunächst Stückzahlen für jede Einheit bestimmten
GROS = 144
SCHOCK = 60
DUTZEND = 12
n = 370
# Anzahl der Gros ist die Ganzzahl Division von n durch die Stückzahl eines Gros:
anzahl_gros = n // GROS
# der Rest ist die Modulo Division von n durch die Stückzahl eines Gros:
rest = n % GROS
# Anzahl der Schock ist die Ganzzahl Division vom Rest durch die Stückzahl eines Schock:
anzahl_schock = rest // SCHOCK
# Davon der Rest ist die Modulo Division vom vorherigen Rest durch die Stückzahl eines Schock:
rest = rest % SCHOCK
# Anzahl der Dutzend ist die Ganzzahl Division vom vorherigen Rest durch die Stückzahl eines Dutzend:
anzahl_dutzend = rest // DUTZEND
# Davon der Rest (also die Stueck) ist die Modulo Division vom vorherigen Rest durch die Stückzahl eines Dutzend:
anzahl_stueck = rest % DUTZEND
print(f"n={n} : --> Gros = {anzahl_gros}, Schock = {anzahl_schock}, Dutzend = {anzahl_dutzend}, Stück = {anzahl_stueck}")
"""
n=370 : --> Gros = 2, Schock = 1, Dutzend = 1, Stück = 10
"""
rogerb hat geschrieben: Sonntag 16. Januar 2022, 23:18 @saltyelo,
zunächst sollte man sich überlegen wieviel Stück in jeder Einheit enthalten sind. Dann schaut man mit der Ganzzahl-Division beginnend mit der größten, wie viele man von einer Einheit braucht.
Die Modulo Division sagt einem wie groß der Rest ist.
Den Rest teilt man durch die nächst kleinere Einheit, usw.:
Hier mal zeilenweise mit Kommentaren runtergeschrieben:Code: Alles auswählen
# zunächst Stückzahlen für jede Einheit bestimmten GROS = 144 SCHOCK = 60 DUTZEND = 12 n = 370 # Anzahl der Gros ist die Ganzzahl Division von n durch die Stückzahl eines Gros: anzahl_gros = n // GROS # der Rest ist die Modulo Division von n durch die Stückzahl eines Gros: rest = n % GROS # Anzahl der Schock ist die Ganzzahl Division vom Rest durch die Stückzahl eines Schock: anzahl_schock = rest // SCHOCK # Davon der Rest ist die Modulo Division vom vorherigen Rest durch die Stückzahl eines Schock: rest = rest % SCHOCK # Anzahl der Dutzend ist die Ganzzahl Division vom vorherigen Rest durch die Stückzahl eines Dutzend: anzahl_dutzend = rest // DUTZEND # Davon der Rest (also die Stueck) ist die Modulo Division vom vorherigen Rest durch die Stückzahl eines Dutzend: anzahl_stueck = rest % DUTZEND print(f"n={n} : --> Gros = {anzahl_gros}, Schock = {anzahl_schock}, Dutzend = {anzahl_dutzend}, Stück = {anzahl_stueck}") """ n=370 : --> Gros = 2, Schock = 1, Dutzend = 1, Stück = 10 """
Vielen lieben Dank für diese ausführliche Antwort, das hat mir sehr weitergeholfen. Wenn mal so ein Skript endlich funktioniert, dann macht das auch mal wieder endlich Spaß!

- __blackjack__
- User
- Beiträge: 14078
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
An der Stelle der Hinweis das es die `divmod()`-Funktion gibt, falls das im Buch da nicht irgendwo in der Nähe stehen sollte.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Das ganze mit `divmod` und näher an der ursprünglichen Definition:
Code: Alles auswählen
DUTZEND = 12 # Stück
SCHOCK = 5 # Dutzend
GROS = 12 # Dutzend
n = 370
anzahl_dutzend, anzahl_stueck = divmod(n, DUTZEND)
anzahl_gros, anzahl_dutzend = divmod(anzahl_dutzend, GROS)
anzahl_schock, anzahl_dutzend = divmod(anzahl_dutzend, SCHOCK)
print(f"n={n} : --> Gros = {anzahl_gros}, Schock = {anzahl_schock}, Dutzend = {anzahl_dutzend}, Stück = {anzahl_stueck}")