i

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 aud 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.

Suche

v
6.3.1.1.1.8
inf-schule.de/imperative-programmierung/python/projekte/variablen/population/weiterentwicklung
inf-schule.de/6.3.1.1.1.8

Rückmeldung geben