Weiterentwicklung des Programms
Ausgabe als Alterspyramide
Ziel ist es, eine textbasierte grafische Darstellung der jeweiligen Populationswerte zu erstellen, die angeleht ist an eine Darstellung als Alterspyramide.
Schritt: 0
j: OOOOOO
e: OOOOOOOOO
a: OOOOOOOOOOOO
Schritt: 1
j: OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
e: OOO
a: OOO
Schritt: 2
j: OOOOOOOOOOOOOOOOOO
e: OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
a: O
Das folgende Programm zeigt, wie man Zeichenketten erzeugt, die aus einer vorgegebenen Anzahl eines bestimmten Zeichens bestehen.
Teste - auch mit veränderten Daten.
Aufgabe 1
Entwickle ein Programm, das Schritt für Schritt die neuen Populationswerte berechnet und sie jeweils in Form einer Alterspyramide (siehe oben) ausgibt.
Prozentuale Anteile
Ziel hier ist es, die Entwicklung der prozentualen Anteile der jeweiligen Altergruppen zu veranschaulichen, z.B. so:
jjjjjjjjjjjjjjjjjjjjjj eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj eeeee aaaa
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee aa
Jeder der Buchstaben j, e und a steht für 1% an der aktuellen Population.
Das folgende Programm zeigt, wie man gerundete prozentuale Anteile berechnet.
Teste - auch mit veränderten Daten.
Aufgabe 2
Entwickle ein Programm, das Schritt für Schritt die Anteile der drei Altersgruppen an der jeweiligen Population berechnet und sie in geeigneter Form (z.B. so wie oben) ausgibt. Teste mit diesem Programm, ob sich die Anteile auf lange Sicht stabilisieren.
Flexible Übergangs- und Geburtsraten
Bisher sind wir von einem festen Modell zur Populationsentwicklung ausgegangen. Für flexiblere Experimente wäre es günstig, wenn man das Modell schnell abändern könnte.
# Initialisierung
ANTEIL_JUNG_ERWACHSEN = 1/2
ANTEIL_ERWACHSEN_ALT = 1/3
GEBURTEN_ERWACHSEN = 4
GEBURTEN_ALT = 2
# Eingabe
jung = int(input('Anzahl junger Mäuse: '))
erwachsen = int(input('Anzahl erwachsener Mäuse: '))
alt = int(input('Anzahl alter Mäuse: '))
# Verarbeitung
...
In Initialisierungsteil werden hier die Übergangs- und Geburtsraten mit Hilfe von Konstanten festgelegt. Konstanten werden üblicherweise in Python mit Großbuchstaben kenntlich gemacht. Im Gegensatz zu Variablen werden die Werte von Konstanten im weiteren Programm nicht mehr verändert. Die Konstanten können aber vor jedem neuen Programmlauf auf die gewünschten Werte gesetzt werden.
Aufgabe 3
Ergänze zu einem Programm, das die Populationsentwicklung über mehrere Schritte berechnet und die Werte jeweils ausgibt. Beachte, dass die Übergangsraten Dezimalzahlen sind. Benutze das Programm, um die Übergangs- und Geburtsraten so festzulegen, dass die Gesamtanzahl der Mäuse auf lange Sicht nahezu konstant bleibt.
Knappe Ressourcen
Wir ändern das Fortpflanzungsmodell: Wenn eine bestimmte Obergrenze überschritten wird (z.B. mehr als insgesamt 1000 Mäuse), dass finden die Mäuse nicht mehr genug Nahrung und als Folge können sie im nächsten Simulationsschritt keine neuen jungen Mäuse zur Welt bringen.
if gesamt > obergrenze:
alt = ...
erwachsen = ...
jung = ...
else:
hilf = erwachsen*GEBURTEN_ERWACHSEN + alt*GEBURTEN_ALT
alt = erwachsen * ANTEIL_ERWACHSEN_ALT
erwachsen = jung * ANTEIL_JUNG_ERWACHSEN
jung = hilf
Im Programm muss man jetzt eine Fallunterscheidung benutzen. Der Programmauszug oben gibt einen Hinweis, wie man das in Python umsetzen kann.
Aufgabe 4
Entwickle ein passenden Programm und teste es mit unterschiedlichen Daten.