Die Wachstumspyramide
Erstellen Sie Ihre eigene Bevölkerungsstruktur und manipulieren Sie nach Belieben mit Geburtenraten und Sterblichkeiten und lassen Sie sich die Änderungen für das nächste Jahrtausend ausrechnen.
Das Programm »PYRAMIDE« (Listing) für den C 128 projiziert die derzeitige Altersstruktur der deutschen Bevölkerung in die Zukunft, wobei Annahmen zur Geburtenhäufigkeit und Sterblichkeit vom Benutzer vorgegeben und beliebig geändert werden können.
Den besten Überblick über die Altersstruktur einer Bevölkerung bietet eine grafische Darstellung in Form einer Bevölkerungspyramide. Nur als ergänzende Information werden im unteren (Text-)Teil des Bildschirmes die Gesamtbevölkerung und die Anteile dreier Altersgruppen als Zahlen ausgegeben.
Eine Pyramide besteht aus 40 Balken, je 20 für die beiden Geschlechter (von der Mitte nach links aufgetragen wird »männlich«, auf dem Bildschirm markiert durch »M«; von der Mitte aus nach rechts: »weiblich«, markiert mit »W«). Jeder Balken steht für eine 5jährige Altersgruppe, beginnend unten am Fuß der Pyramide mit dem Alter »0 bis unter 5 Jahre«, weiter mit den Altersgruppen 5 bis 10, 10 bis 15,…,95 bis 100. Als Orientierungshilfe zum Erkennen der Altersgruppe, die durch einen bestimmten Balken dargestellt wird, sind am linken und rechten Bildschirmrand Strichmarkierungen angebracht. Die Breite der Balken ist proportional zur Anzahl der weiblichen beziehungsweise männlichen Personen, die der entsprechenden Altersgruppe angehören. Auf den beiden unterhalb jeder Pyramide befindlichen Achsen wird der zur Zeit gültige Maßstab (in tausend Personen) angezeigt. Der Ausgangswert ist 2800, das heißt ein Balken von der Breite der Achse steht für 2800 x 1000 = 2,8 Millionen Personen. Da der Balken fünf Jahrgänge repräsentiert, ist jeder dieser Jahrgänge dann mit 0,56 Millionen Personen besetzt. Der Maßstab kann sich im Laufe des Programms ändern; der jeweilige Wert wird angezeigt. (»****« steht für Werte über 10000.) Der besseren Anschaulichkeit wegen, wurde ein variabler Maßstab gewählt. Eine bei unverändertem Maßstab bis auf wenige Millimeter Breite geschrumpfte Pyramide würde zwar den dahinterstehenden starken Bevölkerungsrückgang gut zum Ausdruck bringen, aber keine Informationen über den Altersaufbau mehr zeigen — was aber, wie eingangs erwähnt, ihr eigentlicher Sinn ist. Der aus der Breite der Pyramide also nicht immer unmittelbar hervorgehende Bevölkerungsstand (= Zahl der Personen insgesamt) kann jederzeit dem Textteil entnommen werden.
Ausgangsdaten
Die DATA-Zeilen enthalten folgende Ausgangsdaten:
(i) Deutsche Bevölkerung (in Tausend) am 1.1.1985, aufgegliedert nach Geschlecht und 5jährigen Altersgruppen
(ii) Überlebenswahrscheinlichkeiten von jeder Altersgruppe beim Wechsel in die nächstfolgende Altersgruppe
(iii) Altersspezifische Geburtenziffern
Zu (i). Es wurde ausdrücklich die deutsche Bevölkerung (das heißt die in der Bundesrepublik lebenden Personen ohne Ausländer) gewählt. Dies ist für Statistiken üblich. Die Anzahl der Ausländer ist durch Aus- und Einwanderungen derart instabil, daß eine langfristige Betrachtung nicht sinnvoll ist. Bei der deutschen Bevölkerung können Aus- und Einwanderungen zahlenmäßig vernachlässigt werden.
Zu (ii): Die Überlebenswahrscheinlichkeiten geben an, wie hoch die Wahrscheinlichkeit ist, die nächsten 5 Jahre zu überleben und damit in die nächsthöhere Altersgruppe zu wechseln (Beispiel siehe »Berechnungsmethode«). Die eingesetzten Ausgangswerte entsprechen denen des Jahres 1984.
Zu (iii): Die altersspezifischen Geburtenziffern sind ein Maß für die durchschnittlichen Geburten dieser Altersgruppe. Die sieben Werte beziehen sich auf die Altersgruppen 15 bis 20, 20 bis 25.. 45 bis 50. (Geburten der Gruppen unter 15- oder über 50jährigen Müttern können zahlenmäßig vernachlässigt werden.)
Beispiel: Die zweite Ziffer (0.29782) besagt, daß innerhalb von 5 Jahren 1000 Frauen der Altersgruppe 20 bis 25 Jahre 298 Kinder zur Welt bringen.
Die Summe aller sieben Variablen gibt an, wieviele Kinder eine Frau im Durchschnitt im Laufe ihres Lebens zur Welt bringt. Als Basis wurden die im Jahr 1984 beobachteten Geburtenzahlen herangezogen. Diese Größe wird in dem Programm zur Änderung der Geburtenhäufigkeit variiert. In dem Programm wird die gewünschte Veränderung dann proportional auf alle Altersgruppen umgerechnet.
Berechnungsmethode
Der Rechenweg zur Ermittlung der Prognose für die nächsten 5 Jahre wird im folgenden anhand des Zeitraumes 1985 bis 1990 erläutert.
Gäbe es keine Sterblichkeit, so würde die Anzahl der Personen zwischen 0 und 5 Jahren genau derjenigen zwischen 5 und 10 Jahren im Jahr 1990 entsprechen.
M(I,1990) = M(I-1,1985)
W(I,1990) = W(I-1,1985)
Die VariableI = 1, 2, …. 19 steht für die einzelnen Altersgruppen.
Überlebenswahrscheinlichkeit ermittelt sich aus der Multiplikation von Sterblichkeit und Altersgruppe. PM und PW ist immer kleiner 1:
M(I) = PM(I) x M(I-1)
W(I) = PW(I) x W(I-1)
Anmerkungen:
Die Altersgruppe der 0-bis 5jährigen von 1985 (1 = 0) lassen sich auf diese Weise nicht berechnen, da sie 1985 noch nicht gelebt haben.
Die Altersgruppe der 95-bis 100jährigen von 1985 wären 1990 über 100 Jahre alt und fallen aus der Berechnung heraus, was man als PM(20) = PW(20) = 0 interpretieren kann.
PM(I) beziehungsweise PW(I) stellen also die bedingte Wahrscheinlichkeit dar. Beispiel:
Berechnung der Zahl der 95-bis 100jährigen Frauen im Jahr 1990 aus der Zahl der 90-bis 95jährigen im Jahr 1985:
W(19) = PW(19) x W(18) = 0.21271 x 100.9 = 21.5 (tsd.)
Es bleibt noch die Berechnung der Altersgruppe der 0- bis 5jährigen für das Jahr 1990:
Die Geburtenzahl ergibt sich aus der Multiplikation der Zahl der Frauen im Alter von 15 bis 20, 20 bis 25, …, 45 bis 50 Jahren mit den dazugehörigen Geburtenziffern. Da die Geburten nicht zu einem bestimmten Zeitpunkt stattfinden, sondern sich auf den gesamten Zeitraum zwischen 1985 und 1990 verteilen, wird dieser Rechenschritt mit der Bevölkerung der Jahre 1985 und 1990 durchgeführt und der Mittelwert der beiden Ergebnisse gebildet.
BO umfaßt alle Neugeborenen, sowohl Mädchen als auch Knaben. Wie die Statistik zeigt, ist der Anteil der beiden Geschlechter im Zeitablauf nahezu unverändert, wobei die Knaben mit 51 bis 52 Prozent geringfügig besser abschneiden als die Mädchen (48 bis 49 %).
Die zwischen 1985 und 1990 geborenen Kinder sind im Jahr 1990 zwischen 0 und 5 Jahre alt, also im Durchschnitt zweieinhalb Jahre. Zur Berücksichtigung der Sterblichkeit muß noch mit der Überlebenswahrscheinlichkeit multipliziert werden. Die folgenden Formeln fassen die Aufteilung von BO auf die beiden Geschlechter und die Berücksichtigung der Sterblichkeit in den ersten zweieinhalb Lebensjahren zusammen:
M(0) = BO x 0.5136 x PM(0) W(0) = BO x 0.4864 x PW (0)
Soll um 5 Jahre zurückgerechnet werden, so muß durch PM(I) beziehungsweise PW(I) dividiert (statt multipliziert) werden:
M(I) = M(I + 1) / (PM(I + 1)
W(I) = W(I+1) / PW(I + 1)
Die Berechnung einer Geburtenzahl entfällt hier natürlich. Als weitere Besonderheit ist zu nennen, daß die jeweils oberste noch vorhandene Altersgruppe wegfällt. Bei dreimaligem Zurückrechnen beispielsweise ist die Pyramide nur noch bis zum Alter von 85 Jahren besetzt. Die Angaben im Textteil beziehen sich immer auf den verbliebenen Rest und sind, insbesondere wenn mehr als 10 Jahre zurückgerechnet werden, nur noch bedingt zum Vergleich mit einer vollständigen Pyramide geeignet.
Bedienungsanleitung
Nach dem Start mit »RUN« und einer kurzen Wartezeit erscheint ein Menü. Folgende Funktionen sind vorgesehen:
1) Modellrechnung starten beziehungsweise fortsetzen
2) Geburtenhäufigkeit ändern
3) Sterblichkeit ändern
4) Altersgliederung im Textteil ändern
5) Pyramiden vertauschen
Zu 1.: Modellrechnung starten beziehungsweise fortsetzen
Durch Aufruf dieses Menüpunktes wird der Grafik-Modus eingeschaltet. Beim ersten Aufruf wird links die Bevölkerungspyramide des Jahres 1985 und rechts die des Jahres 1990 gezeichnet.
Anschließend und nach jeder weiteren Rückkehr aus dem Menü in den Grafik-Modus bestehen folgende Steuerungsmöglichkeiten: + : 5 Jahre weiterrechnen (die rechte Pyramide wird auf den neuen Stand gebracht, ebenso die Zahlen unterhalb der Pyramide) —: 5 Jahre zurückrechnen (dabei fällt die jeweils oberste Altersgruppe weg) M: Rückkehr zum Menü (Grafikmodus aus)
Zu 2.: Geburtenhäufigkeit ändern
Die derzeit gültige, durchschnittliche Kinderzahl je Frau wird angezeigt und der für die weitere Rechnung gewünschte Wert erfragt. (Voreingestellt ist 1.3, der für das Jahr 1984 von der Statistik registrierte Wert.) Danach Rückkehr zum Menü.
Zu 3.: Sterblichkeit ändern
Es wird gefragt, um wieviel sich die Sterblichkeit erhöhen (positive Werte) beziehungsweise verringern soll (negative Werte). Die voreingestellte Sterblichkeit entspricht der des Jahres 1984. Danach Rückkehr zum Menü.
Zu 4.: Altersgliederung im Textteil ändern
Im Textteil im unteren Bildschirmviertel wird die den Pyramiden zugrundeliegende Bevölkerung einmal als Gesamtzahl und darunter in einer prozentualen Aufgliederung nach drei Altersgruppen angezeigt: »0 bis 20 Jahre«, »20 bis 60 Jahre« und »60 Jahre und älter«.
Die hier auf 20 beziehungsweise 60 Jahre voreingestellten Grenzen zwischen der unteren und der mittleren beziehungsweise zwischen der mittleren und oberen Altersgruppe sind variabel und werden bei Aufruf dieses Menüpunktes erfragt. Die erstgenannte Zahl muß kleiner sein als die zweite; weiterhin müssen beide Werte durch 5 teilbar sein (da im Modell fünfjährige Altersgruppen die feinste Altersabstufung darstellen).
Zu 5.: Pyramiden vertauschen
Dieser Menüpunkt wird aufgerufen, wenn eine schon berechnete Pyramide sich nicht mehr weiter verändert, sondern (anstelle der zunächst links stehenden Pyramide des Jahres 1985) als Vergleichspyramide dienen soll. Mit der nach dem Vertauschen rechts befindlichen Pyramide des Jahres 1985 kann nun eine Rechnung mit anderen Vorgaben als vor der Vertauschung durchgeführt werden, und die Ergebnisse der beiden Rechnungen können direkt miteinander verglichen werden.
Beispiele für die Anwendung des Programms PYRAMIDE
I. Nach dem Start wird der Menüpunkt 1 aufgerufen. Beim Vergleich der beiden nun sichtbaren Pyramiden der Jahre 1985 und 1990 fällt auf (besonders gut zu erkennen anhand der breiten Balken der geburtenstarken Jahrgänge, die jetzt im Alter 20 bis 30 sind), daß die Balken der rechten sich gegenüber ihrer Position in der linken Pyramide um eine Altersgruppe nach oben verschoben haben (Bild 1). Dies bedeutet einfach, daß die betreffenden Personen 5 Jahre älter geworden sind. Beim Weiterrechnen (»+« — Taste) kann man das Aufrücken der breiten Balken gut beobachten.

Der unterste Balken stellt die in den jeweils letzten 5 Jahren Geborenen dar. Rechnet man bis zum Jahr 2005 und beobachtet dabei den jeweils untersten Balken, so fällt auf, daß die Geburtenzahl zwischen 1985 und 1995 konstant bleibt oder sogar leicht ansteigt, danach aber rasch zurückgeht. Das hängt mit der Besetzungszahl der um etwa 20 bis 30Jahre älteren, also vier bis sechs Balken weiter oben sichtbaren Elterngenerationen der Geborenen zusammen. Eine stärker besetzte Elterngeneration bekommt (bei konstanter Geburtenhäufigkeit) eben mehr Kinder als schwächer besetzte Jahrgänge. Dieser zyklische Verlauf klingt jedoch immer weiter ab, da die Grenzen zwischen den ursprünglich altersmäßig scharf abgegrenzten geburtenstarken und -schwachen Jahrgängen sich immer mehr verwischen.
Spätestens wenn im Programm das Jahr 2030 erreicht ist (Bild 2), sieht man, daß die Bevölkerungspyramide eigentlich keine Pyramidenform mehr hat, sondern eher einer Urne gleicht. Der Altersaufbau hat sich grundlegend geändert. Statt 23 Prozent im Jahr 1985 sind 2030 weniger als 16 Prozent der Bevölkerung unter 20 Jahre alt; stark zugenommen hat dagegen der Anteil der über 60jährigen (von 21 auf 37 %).

II. Führt man Beispiel I über das Jahr 2030 hinaus fort, so wachsen die geburtenstarken Jahrgänge bald aus der Pyramide heraus und die Urnenform wird um so regelmäßiger, je weiter man rechnet. Es entsteht eine sogenannte »Stabile Bevölkerung«. Stabil ist dabei lediglich die Altersstruktur; die Personenzahl insgesamt nimmt kontinuierlich ab. Dieser Altersstruktur würde sich die deutsche Bevölkerung (unter ständigem Schrumpfen) also annähern, wenn die zur Zeit zu beobachtende Geburtenhäufigkeit und Sterblichkeit sich nicht (oder nur unwesentlich) verändern würden.
III. Was würde bei einem sofortigen Anwachsen der durchschnittlichen Kinderzahl von 1,3 auf 3 passieren? Halten Sie die in II erstellte stabile Bevölkerung durch Vertauschen der Pyramiden (Menüpunkt 5) fest, ändern Sie die Geburtenzahl (Menüpunkt 2) auf 3 und rechnen Sie bis zum gleichen Jahr wie die nun links stehende »Urne«. Rechts entsteht eine Pyramide, die diesen Namen auch verdient (Bild 3). Eine ähnliche Form hatte der Altersaufbau der deutschen Bevölkerung um 1900 (damals gab es weder geburtenschwache Jahrgänge am Fuß der Pyramide noch war die Pyramide in höheren Altersjahren durch Kriegseinwirkungen so zerklüftet wie die heutige). Vor allem in Entwicklungsländern findet man auch heute diese Altersstruktur.

Bei einer solchen »richtigen« Pyramide sind die jüngsten Jahrgänge zugleich die am stärksten besetzten, weil durch die relativ hohe Kinderzahl jede Tochtergeneration zahlenmäßig stärker ist als die vorangegangene. Bei der »Urne« ist es umgekehrt: Jede Generation ist schwächer besetzt als die vorangegangene. Daß im Alter von etwa 60 bis 70Jahren ein Maximum auftritt (das heißt die »Urne« dort am breitesten ist) und darüberliegende Altersjahre wieder schwächer besetzt sind, ist ausschließlich der ab diesem Alter »durchschlagenden« Sterblichkeit zuzuschreiben.
Im Fall der »Urne« nimmt die Bevölkerung beständig ab; bei der Pyramide nimmt sie zu. Versuchen Sie doch einmal herauszufinden, bei welcher durchschnittlichen Kinderzahl sich die Bevölkerung langfristig auf einem konstanten Niveau einpendelt!
IV. Die Zu- oder Abnahme der Bevölkerung errechnet sich aus der Differenz von Geburten (G) und Sterbefällen (S). Starten Sie das Programm neu, rufen Sie Menüpunkt 4 auf, ändern Sie die Grenze zwischen unterer und mittlerer Altersgruppe auf »5« ab und rufen Sie dann Menüpunkt 1 auf (Bild 4). Die Differenz zwischen der für 1985 und 1990 angezeigten Bevölkerung beträgt 0,8 Millionen; dies ist gleichzeitig die Differenz zwischen den 1985 bis 1990 Geborenen und Gestorbenen:
S - G = 0.8 Mill.

Der Anteil der unter 5jährigen beträgt 1990 4,8 Prozent, also ist
G = 0,048x55,8 = 2,7 Millionen.
Aus diesen beiden Gleichungen folgt: S = 3,5 Millionen. Im Zeitraum von 1985 bis 1990 stehen 2,7 Millionen Geburten demnach 3,5 Millionen Sterbefällen gegenüber (das heißt etwa 30 % mehr Gestorbene als Geborene). Wie hoch wird wohl der Sterbefallüberschuß in etwa 50 Jahren sein? Rechnen Sie zur Beantwortung dieser Frage weiter bis 2030, vertauschen Sie dann die Pyramiden und rechnen Sie nun bis 2035. Jetzt lassen sich Geborene und Sterbefälle für den Zeitraum 2030 bis 2035 (wie oben für den Zeitraum 1985 bis 1990) ermitteln. Man erhält mehr als dreimal soviele Sterbefälle wie Geburten (3,9 : 1,2 Millionen).
Hinweis: Die Wartezeitzwischen dem Drücken der»+ «-oder »-«-Taste und dem Zeichnen der neuen Pyramide kann verkürzt werden, indem zu Beginn von Zeile 770 »FAST :« und zu Beginn von Zeile 1050 »SLOW :« eingefügt wird!
10 rem * * * programm pyramide * * *
20 rem * *
30 rem * von: werner braun *
40 rem * marie-juchacz-str. 4 *
50 rem * 6503 mainz-kastel *
60 rem * *
70 rem * * * * * * * * * * * * * * * *
80 color 4,7 : color 0,13 : color 5,8
90 scnclr : print "{down} moment ..."
100 dim x1(19):dim x2(19):dim x3(19):dim x4(19):dim m(19):dim w(19):dim pm(19)
110 dim pw(19):dim m0(19):dim w0(19):dim f(6):dim x5(19):dim x6(19):dim h1(19):dim h2(19)
120 z1=3 : z2=11 : g1=20 : g2=60 : j1=1985 : j2=1985
130 for i=0 to 19 : read m(i) : bi=bi+m(i): next
140 for i=0 to 19 : read w(i) : bi=bi+w(i): next
150 for i=0 to 19 : read pm(i) : next
160 for i=0 to 19 : read pw(i) : next
170 gosub 1020 : aj=bj : am=bm : aa=ba : ai=bi
180 for i=0 to 6 : read f(i) : fs=fs+f(i) : next
190 c1=2800 : c2=c1 : s2=56/c2 : f1=fs
200 for i=0 to 19 : x3(i)=int(226.5-m(i)*s2) : x4(i)=int(230.5+w(i)*s2) : next
210 for i=0 to 19 : m0(i)=m(i) : w0(i)=w(i) : next
220 t$="n"
230 gosub 1530 : rem menue
240 graphic 2,1,19 : color 1,16 : color 0,7 : t$="j"
250 char 1,8,1,"1 9 8 5"
260 :
270 rem altersskala
280 :
290 for y=40 to 136 step 24
300 draw 1,0,y to 25,y : draw 1,295,y to 319,y
310 next
320 char 1,0,2,"alter"
330 char 1,1,16,"0" : char 1,0,13,"20" : char 1,0,10,"40" : char 1,0,7,"60" : char 1,0,4,"80"
340 char 1,35,2,"alter"
350 char 1,39,16,"0" : char 1,38,13,"20" : char 1,38,10,"40" : char 1,38,7,"60" : char 1,38,4,"80"
360 :
370 rem abszissen
380 :
390 color 1,12
400 draw 1,34,148 to 90,148 : draw 1,94,148 to 150,148 : draw 1,34,144 to 34,151 : draw 1,150,144 to 150,151
410 char 1,11,18,"0" : xc=5 : sc=c1 : gosub 1460
420 draw 1,170,148 to 226,148 : draw 1,230,148 to 286,148 : draw 1,170,144 to 170,151 : draw 1,286,144 to 286,151
430 char 1,28,18,"0" : xc=22 : sc=c2 : gosub 1460
440 :
450 rem linke pyramide zeichnen
460 :
470 color 1,8
480 for i=0 to 19
490 y=136-6*i : x5(i)=int(90.5-m0(i)*s2) : x6(i)=int(94.5+w0(i)*s2)
500 h1=m0(i)>1/s2 : box 1,x5(i),y,90,y-4,,-h1
510 h1=w0(i)>1/s2 : box 1,94,y,x6(i),y-4,,-h1
520 next
530 color 1,12 : char 1,6,3,"m" : char 1,16,3,"w" : char 1,23,3,"m" : char 1,33,3,"w"
540 :
550 rem rechte pyramide zeichnen
560 :
570 j=j2 : xs=25 : gosub 770 : j2=j
580 color 1,14
590 for i=0 to 19
600 y=136-6*i
610 h1=m(i)>1/s2 : box 1,x3(i),y,226,y-4,,-h1
620 h1=w(i)>1/s2 : box 1,230,y,x4(i),y-4,,-h1
630 next
640 gosub 1300
650 :
660 rem warten auf tastendruck
670 :
680 getkey a$
690 if a$="+" goto 730
700 if a$="-" then rr=1 : goto 730
710 if a$="m" then gosub 1530 : color 0,7 : gosub 1300
720 goto 680
730 gosub 770 : gosub 1090 : gosub 1300 : goto 680
740 :
750 rem 5 jahre weiter- bzw. zurueckrechnen
760 :
770 for i=0 to 19 : x1(i)=x3(i) : x2(i)=x4(i) : next
780 bi=0 : b0=0 : bj=0 : bm=0 : ba=0 : mx=0
790 if rr=1 then begin
800 : for i=0 to 18
810 : w(i)=w(i+1)/pw(i+1) : if w(i)>mx then mx=w(i)
820 : m(i)=m(i+1)/pm(i+1) : bi=bi+m(i)+w(i)
830 : next
840 : m(19)=0 : w(19)=0
850 bend : goto 940
860 for i=0 to 6 : b0=b0+w(i+3)*f(i) : next
870 for i=19 to 1 step -1
880 w(i)=w(i-1)*pw(i) : if w(i)>mx then mx=w(i)
890 m(i)=m(i-1)*pm(i) : bi=bi+m(i)+w(i)
900 next
910 for i=0 to 6 : b0=b0+w(i+3)*f(i) : next
920 b0=b0/2 : w(0)=.4864*pw(0)*b0 : m(0)=.5136*pm(0)*b0
930 if w(0)>mx then mx=w(0)
940 do while mx>.9*c2 or mx<.6*c2
950 if mx>.9*c2 then c2=1.5*c2 : else c2=.6*c2
960 s2=56/c2 : sc=c2 : gosub 1460 : rem masstab aendern
970 loop
980 for i=0 to 19
990 x3(i)=int(226.5-m(i)*s2) : x4(i)=int(230.5+w(i)*s2)
1000 next
1010 j=j2 : gosub 1220 : j2=j
1020 for i=0 to z1 : bj=bj+m(i)+w(i) : next
1030 for i=z1+1 to z2 : bm=bm+m(i)+w(i) : next
1040 bi=bi+b0 : ba=bi-bj-bm
1050 return
1060 :
1070 rem rechte pyramide aktualisieren
1080 :
1090 color 0,13 : color 1,14
1100 for i=19 to 0 step -1
1110 y=136-6*i : h1=(x1(i)<>x3(i)): h2=m(i)>0
1120 if x3(i)<=x1(i) and h2 then box 1,x1(i),y,x3(i),y-4,,-h1 :else begin
1130 : box 0,x1(i)-1,y,x3(i)+h2,y-4,,-h1 : bend
1140 h1=(x2(i)<>x4(i)) : h2=w(i)>0
1150 if x4(i)>=x2(i) and h2 then box 1,x2(i),y,x4(i),y-4,,-h1 :else begin
1160 : box 0,x4(i)-h2,y,x2(i)+1,y-4,,-h1 : bend
1170 next
1180 color 0,7 : return
1190 :
1200 rem neue jahreszahl schreiben
1210 :
1220 color 1,16 : if rr=1 then j=j-5 : rr=0 : else j=j+5
1230 j$=str$(j)
1240 j$=mid$(j$,2,1)+" "+mid$(j$,3,1)+" "+mid$(j$,4,1)+" "+mid$(j$,5,1)
1250 char 1,xs,1,j$
1260 return
1270 :
1280 rem textteil erstellen
1290 :
1300 scnclr 0 : color 5,4
1310 g1$=right$(str$(g1),2) : g2$=right$(str$(g2),2)
1320 print "{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"
1330 print "insges.:"; : print using "####.# mill";ai/1000; : print ".";
1340 printtab(23); : print using "#####.# mill";bi/1000; : print "."
1350 p$="##.# %"
1360 print "{down} bis ";g1$;" : "; : print using p$;aj/ai*100;
1370 printtab(26); : print using p$;bj/bi*100
1380 print g1$;" - ";g2$;" : "; : print using p$;am/ai*100;
1390 printtab(26); : print using p$;bm/bi*100
1400 print g2$;"u.mehr: "; : print using p$;aa/ai*100;
1410 printtab(26); : print using p$;ba/bi*100;
1420 return
1430 :
1440 rem abszisse d. rechten pyramide beschriften
1450 :
1460 if sc>10000 then sc$="****" : else sc$=right$(str$(int(sc+.5)),4)
1470 color 1,12
1480 char 1,xc,18,sc$ : char 1,xc+9,18,sc$
1490 return
1500 :
1510 rem menue
1520 :
1530 graphic 0,1 : color 0,13 : color 5,16
1540 print "{down} 1 modellrechnung starten bzw."
1550 printtab(5) "fortsetzen"
1560 print "{down}{down} 2 geburtenhaeufigkeit aendern"
1570 print "{down}{down} 3 sterblichkeit aendern"
1580 print "{down}{down} 4 altersgliederung im textteil" : printtab(5) "aendern"
1590 print "{down}{down} 5 pyramiden vertauschen"
1600 print "{down}{down}{down}{down} bitte waehlen (1 - 5) !"
1610 getkey m$ : if val(m$)<1 or val(m$)>5 goto 1610
1620 if m$="1" then scnclr 0 : graphic 2,0,19 : return
1630 :
1640 rem geburtenhaeufigkeit aendern
1650 :
1660 if m$="2" then begin
1670 scnclr : print "{down}{down}{down} derzeitige durchschnittliche kinder-"
1680 print "{down} zahl je frau : "; : print using "#.#";f1
1690 print "{down}{down} fuer die weitere rechnung gewuenschte"
1700 print "{down} durchschn. kinderzahl je frau ?" : print "{down} ";
1710 input fw : if fw<0 goto 1690
1720 restore 2510
1730 f1=0
1740 for i=0 to 6 : read f(i) : f(i)=f(i)*fw/fs : f1=f1+f(i) : next
1750 bend : goto 1530
1760 :
1770 rem sterblichkeit aendern
1780 :
1790 if m$="3" then begin
1800 scnclr : print "{down}{down}{down} um welchen prozentsatz sollen die"
1810 print "{down} ausgangswerte (sterblichkeit 1984)"
1820 print "{down} geaendert werden ?"
1830 print "{down}{down} positive werte bedeuten eine zunahme,"
1840 print "{down} negative werte einen rueckgang der"
1850 print "{down} sterblichkeit !"
1860 input "{down}{down} ";vs : vs=1+vs/100
1870 if vs<0 goto 1860
1880 restore 2450
1890 for i=0 to 19 : read pm(i) : pm(i)=pm(i)^vs : next
1900 for i=0 to 19 : read pw(i) : pw(i)=pw(i)^vs : next
1910 bend : goto 1530
1920 :
1930 rem altersgrenzen aendern
1940 :
1950 if m$="4" then begin
1960 scnclr : print "{down}{down} gewuenschte grenze zwischen :"
1970 print "{down}{down}{down} unterer und mittlerer altersgruppe ?"
1980 input "{down} ";g1
1990 if g1<5 or g1>=95 or int(g1/5)*5<>g1 goto 1980
2000 print "{down} mittlerer und oberer altersgruppe ?"
2010 input "{down} ";g2
2020 if g2<=g1 or g2<=5 or g2>95 or int(g2/5)*5<>g2 goto 2010
2030 z1=g1/5-1 : z2=g2/5-1
2040 aj=0 : am=0 : aa=0
2050 for i=0 to z1 : aj=aj+m0(i)+w0(i) : next
2060 for i=z1+1 to z2 : am=am+m0(i)+w0(i) : next
2070 aa=ai-aj-am
2080 bj=0 : bm=0 : ba=0
2090 for i=0 to z1 : bj=bj+m(i)+w(i) : next
2100 for i=z1+1 to z2 : bm=bm+m(i)+w(i) : next
2110 ba=bi-bj-bm
2120 bend : goto 1530
2130 :
2140 rem pyramiden vertauschen
2150 :
2160 if m$="5" then begin
2170 if t$="n" goto 2350
2180 scnclr 0 : graphic 2,0,19
2190 h=ai:ai=bi:bi=h:h=aj:aj=bj:bj=h:h=am:am=bm:bm=h:h=aa:aa=ba:ba=h
2200 for i=0 to 19
2210 x1(i)=x5(i) : x2(i)=x6(i) : x3(i)=x3(i)-136 : x4(i)=x4(i)-136
2220 next
2230 color 1,8 : gosub 1100
2240 for i=0 to 19 : h1(i)=m0(i) : m0(i)=m(i) : m(i)=h1(i) : h2(i)=w0(i) : w0(i)=w(i) : w(i)=h2(i) : next
2250 for i=0 to 19
2260 h1(i)=x5(i) : h2(i)=x6(i) : x5(i)=x3(i) : x6(i)=x4(i) : x1(i)=x3(i)+136 : x2(i)=x4(i)+136 : x3(i)=h1(i)+136 : x4(i)=h2(i)+136
2270 next
2280 gosub 1090
2290 j3=j2 : j=j2-5 : xs=8 : gosub 1220
2300 j=j1-5 : xs=25 : gosub 1220 : j2=j : j1=j3
2310 h=c1 : c1=c2 : c2=h : s2=56/c2
2320 sc=c1 : xc=5 : gosub 1460
2330 sc=c2 : xc=22 : gosub 1460
2340 gosub 1300 : goto 680
2350 bend
2360 goto 1530
2370 :
2380 rem maennl. bev.
2390 data 1371.1,1287.6,1567.8,2375,2476.6,2149.7,1940.7,1667.5,2039.4,2214,1725.6,1627.8,1298.7,757.1,992.2,723.8,391.7,127.3,30.8,6.9
2400 :
2410 rem weibl. bev.
2420 data 1303,1226.3,1498.2,2269.4,2367.5,2046.2,1858.9,1632.4,2029.2,2209.4,1747.9,1853.5,2010.7,1255.6,1772.3,1424.9,867.3,377.2,100.9,16.5
2430 :
2440 rem ueberlebenswahrsch. maennl.
2450 data .9892,.99787,.99884,.99738,.99421,.99422,.99399,.99192,.98751,.98024,.96734,.94832,.92005,.87592,.80978,.70711,.57594,.42956,.29064,.17014
2460 :
2470 rem ueberlebenswahrsch. weibl.
2480 data .99142,.99837,.99918,.99865,.99784,.99774,.99705,.99554,.99331,.99026,.98431,.97589,.96255,.94057,.90168,.82698,.70494,.53981,.36107,.21271
2490 :
2500 rem geburtenziffern
2510 data .03747,.29782,.51473,.319,.10087,.01647,.00098
Modellrechnung der deutschen Bevölkerung im Statistischen Jahrbuch 1985
Herausgegeben vom Statistischen Bundesamt, Wiesbaden, Verlag W. Kohlhammer, Mainz