Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Beispiel - Geometrische Berechnungen

Oberfläche von Lego-Bausteinen

Lego-Bausteine gibt es in verschiedenen Größen und Ausführungen.

Haufen mit Legosteinen[1]

Bei der Herstellung dieser Bausteine wird vermutlich der Materialverbrauch genau abgeschätzt. Wir werden die Berechnung des Materialverbrauchs hier in vereinfachter Form durchspielen.

Die folgende Abbildung zeigt die Ausmaße von zwei verschiedenen Legosteinen.

Abmessungen der Legobausteine[2]

Wir gehen im Folgenden davon aus, dass Legosteine im Innern - bis auf die Verlängerung der Noppen - hohl sind. Das stimmt nicht ganz, da es Stege zur Verstärkung gibt. Zudem gehen wir davon aus, dass alle Wände eine Dicke von 1.2 mm haben.

Ein Legostein kann dann vereinfacht durch einen innen hohlen Quader (ohne untere Seite) und innen hohle Zylinder (ohne obere und untere Seite) dargestellt werden.

Vereinfachte Struktur eines Legosteins[3]

Den Materialverbrauch kann man abschätzen, indem man die Oberflächen der Bestandteile bestimmt und sie mit der Wanddicke multipliziert.

Aufgabe 1

Schätze den Materialverbrauch beim oben gezeigten roten und gelben Legostein ab.

Programm zur Bestimmung des Materialverbrauchs

Mit dem folgenden Programm kannst du den Materialverbrauch von Legosteinen automatisiert bestimmen:

from math import pi
# Berechnungen für den roten Legostein
laenge = 15.8
breite = 7.8
hoehe = 3.2
anzahlNoppen = 2
oberflaecheQuader = laenge*breite + 2*laenge*hoehe + 2*breite*hoehe
oberflaecheZylinder = 2*pi*2.5*(hoehe+1.7)
oberflaecheGesamt = oberflaecheQuader + oberflaecheZylinder*anzahlNoppen
materialverbrauchLegostein = oberflaecheGesamt * 1.2
print('Materialverbrauch beim roten Legostein:')
print(materialverbrauchLegostein)
# Berechnungen für den gelben Legostein
# ...

Aufgabe 2

(a) Analysiere zunächst das Programm. Kannst du alle Anweisungen erklären?

(b) Ergänze das Programm so, dass auch der Materialverbrauch zum gelben Legostein berechnet wird.

Datenverarbeitung mit Funktionen

Das Programm oben benutzt eine Sequenz von Anweisungen zur Berechnung des gesuchten Materialverbrauchs.

Wir schlagen jetzt einen anderen Weg zur Materialberechnung ein und benutzen hierzu eine Funktion. Der folgende Quelltext zeigt, wie man das machen kann:

from math import pi

# Funktionsdefinition

def materialverbrauchLegostein(laenge, breite, hoehe, anzahlNoppen):
    oberflaecheQuader = laenge*breite + 2*laenge*hoehe + 2*breite*hoehe
    oberflaecheZylinder = 2*pi*2.5*(hoehe+1.7)
    oberflaecheGesamt = oberflaecheQuader + oberflaecheZylinder*anzahlNoppen
    ergebnis = oberflaecheGesamt * 1.2
    return ergebnis

# Funktionsaufrufe

materialRoterBaustein = materialverbrauchLegostein(15.8, 7.8, 3.2, 2)
print('Materialverbrauch beim roten Legostein:', materialRoterBaustein)
materialGelberBaustein = materialverbrauchLegostein(7.8, 7.8, 9.6, 1)
print('Materialverbrauch beim gelben Legostein:', materialGelberBaustein)

Aufgabe 3

(a) Teste das neue Programm. Du solltest dann die gesuchten Werte als Ausgaben im Ausführfenster erhalten.

(b) Bestimme zunächst die Maße eines Legobausteins mit 8x2 Noppen. Verwende hierzu die Informationen in der Abbilddung oben. Ergänze anschließend das Programm (mit Funktion) so, dass auch für diesen Baustein der Materialbedarf bestimmt wird.

(c) Erkennst du schon die Vorteile, die sich ergeben, wenn man Datenverarbeitung mit Funktionen beschreibt?

Aufgabe 4

(a) Bei der Berechnung des Materialverbrauchs von Legosteinen wird die Oberfläche eines Quaders (ohne untere Seite) und eines Zylinders (ohne Seitenteile) bestimmt. Beide Teilberechnungen lassen sich auch mit Funktionen beschreiben. Ergänze entsprechend das folgende Testprogramm.

from math import pi

# Funktionsdefinitionen

def oberflaecheQuaderOhneUnterseite(laenge, breite, hoehe):
    ergebnis = ...
    return ergebnis

def ...

# Funktionsaufrufe
print(oberflaecheQuaderOhneUnterseite(15.8, 7.8, 3.2))
print(oberflaecheZylinderOhneSeiten(2.5, 4.9))

(b) Die beiden Hilfsfunktionen kann man jetzt bei der Definition der Funktion zur Materialberechnung wie folgt benutzen.

from math import pi

# Funktionsdefinitionen

def oberflaecheQuaderOhneUnterseite(laenge, breite, hoehe):
    ...

def oberflaecheZylinderOhneSeiten(radius, hoehe):
    ...

def materialverbrauchLegostein(laenge, breite, hoehe, anzahlNoppen):
    oberflaecheGesamt = \
                      oberflaecheQuaderOhneUnterseite(laenge, breite, hoehe) + \
                      oberflaecheZylinderOhneSeiten(2.5, hoehe+1.7)*anzahlNoppen
    ergebnis = oberflaecheGesamt * 1.2
    return ergebnis

# Funktionsaufrufe

materialRoterBaustein = materialverbrauchLegostein(15.8, 7.8, 3.2, 2)
print('Materialverbrauch beim roten Legostein:', materialRoterBaustein)
materialGelberBaustein = materialverbrauchLegostein(7.8, 7.8, 9.6, 1)
print('Materialverbrauch beim gelben Legostein:', materialGelberBaustein)

Ergänze die fehlenden Teile (siehe (a)) und teste das Programm. Kannst du auch die neue Definition der Funktion materialverbrauchLegostein erklären?

(c) Für Mutige: Bei der Berechnung der Oberfläche eines Quaders muss man Flächeninhalte von Rechtecken bestimmen. Bei der Berechnung des Zylindermantels (Oberfäche ohne Seitenteile) muss man den Umfang eines Kreises bestimmen. Entwickle eigene Funktionsdefinitionen für diese Berechnungen und benutze sie bei den Oberflächenberechnungen.

Quellen

X

Fehler melden

X

Suche