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

Verwaltung von Daten mit Variablen

Automatisierung der Berechnungen

Ziel ist es, die Berechnungen zur Populationsentwicklung von Python ausführen zu lassen.

Wir betrachten erst einmal den Fall, dass sich die Kaninchen ohne den Räuber Fuchs vermehren. Die Berechnungen werden nach folgender Berechnungsformel durchgeführt:

neueAnzahlKaninchen = anzahlKaninchen + zuwachsrateKaninchen*anzahlKaninchen
          1080      =       1000      +            0.08     *      1000

Hier eine mögliche Umsetzung von mehreren Berechnungsschritten mit Python:

Aufgabe 1

(a) Klicke wiederholt auf die Schaltfläche [Forward]. Erkläre, was Python hier jeweils erzeugt.

(b) Ändere den Quelltext so ab, dass die Entwicklung der Fuchspopulation (ohne die Kaninchen als Beute) simuliert wird.

(c) Simuliere analog auch die Entwicklung der gemeinsamen Kaninchen-Fuchs-Population. Konktrolliere die Werte, indem du sie mit den selbst berechneten vergleichst.

(d) Wie würde man eine 10-Schritt-Simulation erhalten?

Eine Funktion zur Ausführung der Berechnungen

Die oben gezeigten Berechnungen lassen sich auch von einer hierfür vorgesehenen Funktion ausführen.

Funktionsdefinition:

def popKa5Schritte(anzKa, zKa):
    anzKa0 = anzKa
    anzKa1 = anzKa0 + zKa*anzKa0
    anzKa2 = anzKa1 + zKa*anzKa1
    anzKa3 = anzKa2 + zKa*anzKa2
    anzKa4 = anzKa3 + zKa*anzKa3
    anzKa5 = anzKa4 + zKa*anzKa4
    return anzKa5

Funktionsaufrufe:

>>> popKa5Schritte(1000, 0.08)
1469.3280768
>>> popKa5Schritte(500, 0.2)
1244.1599999999999

Aufgabe 2

(a) Teste selbst die Funktion mit mehreren Funktionsaufrufen. Beschreibe das Verhalten der Funktion mit einem Black-Box-Diagramm.

(b) Hier kannst du die Ausführung eines Funktionsaufrufs Schritt für Schritt nachvollziehen. Erkläre alle Schritte.

(c) Entwickle eine Funktion popKaFu5Schritte, mit der man die Entwicklung eines Kaninchen-Fuchs-Systems simulieren kann. Teste die Funktion mit geeigneten Funktionsaufrufen.

def popKaFu5Schritte(anzKa, anzFu, zKa, aFu):
    ...
    return (anzKa5, anzFu5)
X

Fehler melden

X

Suche