Menügesteuerte Finanzmathematik
Zwei herausragende Eigenschaften machen dieses Programm für alle C 64-Besitzer interessant: Die sehr gute Menütechnik und der modulare Bildschirmmaskenaufbau.
Wer wünscht sich nicht, daß Programme von Diskette auf Tastendruck geladen, beziehungsweise nachgeladen werden? Wenn Sie das Menüprogramm dieses Listings übernehmen und für Ihren Bedarf abändern, ist das Laden von Programmen kein Problem mehr.
Das Programm wird geladen mit dem Befehl:
LOAD "Menü" ,8
Gestartet wird dann mit dem Befehl: RUN
Wählen Sie nun mit den Funktionstasten F3 und F5 die Nummer des Programmes, mit welchem Sie als nächstes arbeiten wollen. Sie erkennen Ihre augenblickliche Position an der blinkenden Zahl.
Nach beendeter Wahl drücken Sie »RETURN«. Dann wird das Programm geladen, dessen Zahl gerade blinkt und an der sich nach »RETURN« ein ← (Pfeil links) befindet.
Bedienungsanleitung für das Programm:
Erstellen eines Tilgungsplanes.
Nach erfolgter Auswahl im Hauptmenü wird das Programm automatisch gestartet.
Durch entsprechende Informationen in der Fußzeile erklärt sich das Programm im wesentlichen selbst. Allerdings mußte manchmal wegen Platzmangel darauf verzichtet werden.
Grundsätzlich gilt:
- Bis auf die Funktionstasten erfolgt bei jeder Eingabe und Auswahl ein Abschluß mit »RETURN«.
- Bei der Auswahl im Programm, wird immer mit den Tasten F3 und F5 gewählt, nach Drücken von »RETURN« wird immer das als nächstes ausgeführt, was zuletzt geblinkt hat.
- Zum Abschluß der Dateneingabe gilt für die Abfrage, ob die Eingabe korrekt ist, folgendes:
- Zugelassen sind die Buchstaben j (a) und n (nein).
- Die Antwort kann bis zum Abschluß mit »RETURN« durch die Taste »DEL« korrigiert werden.
- Während der Dateneingabe, kann man durch Drücken der Taste Fl zum ersten Auswahlmenü zurückkehren.
- Wird die Tabelle auf dem Bildschirm ausgedruckt, kann man den Bildschirmausschnitt, innerhalb der festgesetzten Grenzen verändern. Mit F1 kehrt man zur alten Bildschirmmaske zurück. Das Ausgabefeld »Resultat« enthält folgende Informationen:
- Zinsaufwand (gesamt): Dieser Summe entsprechen sämtliche in den einzelnen Jahren zu zahlende Zinsen.
- Annuität (gesamt): Dies ist die Summe, die man insgesamt zurückzahlen muß (Zins- und Tilgungsanteil zusammen), Im linken unteren Feld wird noch einmal angegeben, wie hoch der Zinsanteil von der Annuität in Prozent ist. Dieses Programm stellt Tilgungspläne bis zu einer Laufzeit von 50 Jahren auf. Falls dies nicht ausreicht, braucht in Zeile neun nur die Dimensionierung der Variablen e und e$ erhöht werden.
200 - 260: | Aufbau der Bildschirmmaske |
300 - 390: | Auswahlroutine durch Betätigen der Funktionstasten |
400 - 410: | Sprung in die Zeile, in der das entsprechende Programm geladen, oder in der das Programm beendet wird |
900 - 960: | Festlegung der Variablen |
na$ (...) = | Nummern der Programme |
nb$ (...) = | Namen der Programme |
Z = | Zeile |
S = | Spalte |
Y = | Index der indizierten Variablen |
g$ = | Eingabevariable der get-Anweisung |
10-30 | Unterprogramm zum Löschen des rechten oberen und linken unteren Bildschirmfensters |
70-75 | Unterprogramm zur Rundung der Ergebnisse und zur Umwandlung in einen String |
80 | Unterprogramm zum Laden des Menüs |
90 | Unterprogramm zum Setzen des Cursors, an die Stelle, welche mit Z = Zeile und S = Spalte vor dem Sprungbefehl festgelegt wurde |
95 | Unterprogramm zum Zeichnen einer Linie |
100 - 195 | Auswahlroutine mit den Funktionstasten der entsprechenden reversen Felder oben links und unten links. |
200 - 290 | Auswahlroutine mit den Funktionstasten der Fußzeile. |
300 - 480 | Eingaberoutine |
1000 - 1180 | Beginn des Hauptprogramms: — Aufbau der Bildschirmmaske — Sprung in die Auswahlroutine, um festzulegen, was berechnet werden soll. |
2000 - 2140 | Aufbau der Eingabemaske und Eingabe der Daten mittels der Eingaberoutine. Anschließend erfolgt Abfrage, ob die Eingabe korrekt ist. |
3000 - 3040 | Berechnung des vorher ausgewählten Ergebnisses |
3500 - 3610 | Ausdruck des Ergebnisses. Es werden ausgedruckt: — die am Anfang festgelegten Kriterien — die eingegebenen Daten — das Endergebnis Es folgt: Aufbau der Fußzeile mit der Möglichkeit durch Wahl mit den Funktionstasten entsprechend zu verzweigen. |
ma$: | Kopfzeile |
mb$, mc$, md$: | Fußzeilen |
a$ (...) | Eingabekriterien |
ka$; p$; zi$; ja$; mo$; ta$ | Ein- und Ausgabekriterien |
pm$; pu$: | Punkte in der Eingabemaske |
Z: | Zeile der Cursorposition |
S: | Spalte der Cursorposition |
Z1: | niedrigste Zeile, die gelöscht werden soll |
Z2: | höchste Zeile, die gelöscht werden soll |
Y: | Variablenindex |
Y1: | kleinster Index |
Y2: | größter Index |
SW: | Schrittweite |
k; c: | Konstanten, die, je nach ihrer Wertigkeit, bestimmte Vorgaben ausführen. |
f: | gibt an, welche Berechnung erfolgen soll |
e: | gibt an, die Art der Laufzeit |
h: | legt die Art der Laufzeit in der Berechnung fest |
in$: | Variable in der Eingaberoutine |
ab$: | Endergebnis |
10-20 | Unterroutine zum Löschen der rechten
Bildschirmhälfte |
30-55 | Unterroutine zum Runden des Ergebnisses und zum Umwandeln in einen String |
70 | Unterroutine zum Laden des Menüs |
80 | Unterroutine zum Zeichen einer Linie |
90 | Unterroutine zur Festlegung der Cursorposition |
95 | Unterroutine zum Löschen der Fußzeile |
100 - 195 | Unterroutine zur Auswahl der vorgegebenen Möglichkeiten mit den Tasten F3 und F5, der Abschluß erfolgt mit »RETURN«. |
200 - 290 | Unterroutine zur Auswahl bei der Fußzeile mit den Tasten F3 und F5, der Abschluß erfolgt mit »RETURN«. |
300 - 480 | Eingaberoutine. Durch Drücken der Taste Fl kann man von vorne beginnen |
900 - 960 | Aufbau der Bildschirmmaske |
1010 - 1080 | Ausdruck der Kopfzeile und Bildschirmmaske, Sprung in die Auswahlroutine (100-195) |
2000 - 2140 | Aufbau der Eingabemaske und Sprung in die Eingaberoutine. Zum Schluß wird abgefragt, ob die Eingabe korrekt ist. Die Antwort wird mit »RETURN« eingegeben und kann vorher mit »DEL« korrigiert werden. |
3000 - 3720 | Ausführung der Rechnung mit Sprung in die Rundungs- und Stringumwandlungsroutine |
3800 - 3900 | Ausdruck des Resultates auf dem Bildschirm |
3910 - 3950 | Aufbau der Wahlfußzeile und Sprung in die Auswahlroutine (200-290) |
4000 - 4590 | Ausdruck der Tabelle und Verändern des Bildschirmausdrucks mit den Cursortasten: Mit Fl erfolgt ein Rücksprung |
5000 - 5090 | Änderung der eingegebenen Daten |
5500 - 5660 | Papierausdruck der eingegebenen Daten und der Tabelle |
6000 - 6500 | Festlegung der Variablen |
ma$ | Kopfzeile |
mb$ mc$ me$ mf$ mh$ |
Fußzeilen |
md$ | Löschzeile zum Löschen des Bildschirms |
Z: | Zeile der Cursorposition |
S: | Spalte der Cursorposition |
Y: | Variablenindex, der einfach dimensionierten Variablen |
Y1: | niedrigster Variablenindex |
Y2: | höchster Variablenindex |
Sw: | Schriftweite |
g$: | Variable der GET-Anweisung |
g: | ASC (g$) |
i,j: | Variablenindizes der zweifach dimensionierten Variablen |
c: | Konstante, von der bestimmte Bedingungen abhängen |
f: | gibt das Ergebnis der Auswahlroutine an |
h: | beschränkt die maximale Eingabelänge |
in$: | Variablenindex |
pns: | füllt den Ergebnisstring mit Punkten auf |
is: | gibt das Jahr in der Tabelle an |
tb$: | chr$(16): Tabulator |
ta$: | chr$(10): Leerzeile |
XI: | Variable die den kleinsten Index der Tabelle angibt |
X2: | Variable die den größten Index der Tabelle angibt Variablen der Rechnung t1,t2,J2,r1,a1,Z1,Z2 |
70 rem (c) by klaus kloeker 80 goto100 90 poke214,z:poke211,s:sys58732:return 100 rem * menue * 110 print"{clr}{wht}":poke53280,0:poke53281,0:poke53272,23:poke788,52:gosub900 200 print"{rvon} F{$a0}I{$a0}N{$a0}A{$a0}N{$a0}Z{$a0}M{$a0}A{$a0}T{$a0}H{$a0}E{$a0}M{$a0}A{$a0}T I{$a0}K {rvof}" 210 z=4:s=6:gosub90:print"Menue :":z=5:gosub90:print"-------" 220 z=7:s=0:y=1:fori=1to5:gosub90:printna$(i);nb$(i) 230 z=z+2:y=y+1:next 240 z=18:gosub90:print"{rvon} {rvof} Waehlen Sie mit {rvon} F3 {rvof} und {rvon} F5 {rvof} !" 250 z=20:s=7:gosub90:print"Druecken Sie dann ' RETURN{$a0}' {$a0}!" 260 z=23:s=0:gosub90:print"{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}{CBM-I}" 300 rem * auswahlroutine * 310 z=7:y=1 320 gosub90:print"{rvon} {rvof}":fori=1to75:next 330 print"{up}";na$(y):fori=1to125:next 340 getg$:ifg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then320 350 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}";:goto400 355 ifg$=chr$(135)then380 360 z=z+2:y=y+1:ifz>15thenz=7:y=1 370 goto320 380 z=z-2:y=y-1:ifz<7thenz=15:y=5 390 goto320 400 onygoto500,510,520,530,540 410 end 500 loadnb$(1),8 510 loadnb$(2),8 520 loadnb$(3),8 530 loadnb$(4),8 540 print"{clr}":poke53272,21:poke788,49:end 900 rem * variablen * 910 na$(1)="{rvon}- 1 -{rvof} ":na$(2)="{rvon}- 2 -{rvof} ":na$(3)="{rvon}- 3 -{rvof} " 920 na$(4)="{rvon}- 4 -{rvof} ":na$(5)="{rvon}- 5 -{rvof} " 930 nb$(1)="Zinsrechnung":nb$(2)="Zinseszinsrechnung" 940 nb$(3)="Diskontieren eines Kapitals" 950 nb$(4)="Erstellen eines Tilgungsplaenes":nb$(5)="Programmende" 960 return
7 poke45,peek(174):poke46,peek(175):clr 8 rem (c) by klaus kloeker 9 clr:dima$(15),a(15):goto1000 10 z1=3:z2=9:s=13:rem * maske loeschen * 20 forz=z1toz2:gosub90:print" ":next:ifc=0thenreturn 30 z1=12:z2=20:c=0:goto20 50 return 70 a$(12)=str$(int(a(12)*100+.5)):rem * runden 75 ab$=left$(a$(12),len(a$(12))-2)+"."+right$(a$(12),2):return 80 load"menue",8:rem *load menue 90 poke214,z:poke211,s:sys58732:return:rem * cursorposition 95 a=55869:fori=1597to1622:pokei,100:pokea,1:a=a+1:next:return 100 rem * auswahlroutine * 110 gosub90:print"{rvon} {rvof}":fori=1to75:nexti 120 gosub90:print"{rvon}"a$(y)"{rvof}":fori=1to125:next 130 getg$:ifg$<>chr$(133)andg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then110 140 ifg$=chr$(133)andcthenc=0:return 150 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}":return 160 ifg$=chr$(135)then190 170 z=z+sw:y=y+1:ifz>z2thenz=z1:y=y1 180 goto110 190 z=z-sw:y=y-1:ifz<z1thenz=z2:y=y2 195 goto110 200 rem * wahl-fusszeile *:s=0 210 z=23:gosub90:print"{rvon} {rvof}";:fori=1to75:next 220 gosub90:print"{rvon}"ba$(y)"{rvof}";:fori=1to175:next 230 getg$:ifg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then210 240 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}";:return 250 ifg$=chr$(135)then280 260 s=s+10:y=y+1:ifs>31thens=0:y=1 270 goto210 280 s=s-10:y=y-1:ifs<0thens=30:y=4 290 goto210 300 rem * eingaberoutine * 310 gosub90 320 in$="" 330 print"{CBM-I}{left}"; 340 getg$:ifg$=""then340 350 g=asc(g$):ifg=13thengoto460 370 ifg$<"0"org$>"9"then420 380 in$=in$+g$ 390 printg$; 400 iflen(in$)>nthenfori=1tolen(in$):printchr$(20);:next:goto320 410 goto330 420 ifg=46then380 425 ifg$=chr$(133)then9 430 ifg<>20then330 440 iflen(in$)<1then330 450 in$=left$(in$,len(in$)-1):goto390 460 pn$="":fori=1to(10-len(in$)):pn$=pn$+".":next:printpn$ 470 iflen(in$)<1then310 480 return 999 : 1000 rem ** zinsrechnung ** 1010 gosub5000:printma$ 1020 a=55388:fori=1076to1906step40:pokei,101:pokea,1:a=a+40:next 1030 a=55736:fori=1464to1474:pokei,100:pokea,1:a=a+1:next 1040 a=55749:fori=1477to1502:pokei,100:pokea,1:a=a+1:next 1050 z=23:s=0:gosub90:printmb$ 1060 z=3:gosub90:print"Auswahl :":print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 1070 z=5:fori=1to5:gosub90:print"{rvon}"a$(i)"{rvof}":z=z+1:next 1080 z=5:z1=z:z2=9:s=0:y=1:y1=y:y2=5:sw=1:c=0:gosub100:f=y:iff=5then80 1090 z=13:s=0:gosub90:print"Laufzeit in":print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 1100 z=15:fori=6to8:s=0:gosub90:print"{rvon}"a$(i)"{rvof}":z=z+1:next 1110 z=15:z1=z:z2=17:s=0:y=6:y1=y:y2=8:sw=1:c=0:gosub100:e=y 1120 ife=6thena$(11)=ja$:h=1 1130 ife=7thena$(11)=mo$:h=12 1140 ife=8thena$(11)=ta$:h=360 1150 iff=1thena$(9)=ka$:a$(10)=p$:k=1 1160 iff=2thena$(9)=zi$:a$(10)=p$:k=1 1170 iff=3thena$(9)=ka$:a$(10)=zi$:k=0 1180 iff=4thena$(9)=ka$:a$(10)=zi$:a$(11)=p$:k=2 2000 rem * eingabemaske * 2010 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 2020 z=5:fori=9to11:s=13:gosub90:print"{rvon}"a$(i)"{rvof} : ";pm$ 2030 z=z+2:next:z=23:s=0:gosub90:printmc$ 2040 z=5:s=27:n=10:gosub300:a(9)=val(in$) 2050 z=7:s=27:n=10:gosub300:a(10)=val(in$) 2060 z=9:s=27:n=10:gosub300:a(11)=val(in$) 2070 z=13:s=13:gosub90:print"Eingabe korrekt ? (j/n):":gosub95 2080 z=13:s=38:gosub90:print"{CBM-I}{left}"; 2090 getg$:ifg$<>"j"andg$<>"n"then2090 2100 printg$:ifg$="j"theny=1 2110 ifg$="n"theny=0 2120 geti$:ifi$<>chr$(13)andi$<>chr$(20)then2120 2130 ifi$=chr$(20)then2080 2140 c=1:gosub10:ify=0then2010 3000 rem * rechnung * 3010 iff=1thena(12)=(a(9)*a(10)*a(11))/(100*h) 3020 iff=2thena(12)=(a(9)*100*h)/(a(10)*a(11)) 3030 iff=3thena(12)=(a(10)*100*h)/(a(9)*a(11)) 3040 iff=4thena(12)=(a(10)*100*h)/(a(9)*a(11)) 3500 rem * bildschirm 3510 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3520 z=5:fori=9to11:gosub90:printa$(i)" :"a(i):z=z+2:next 3530 z=13:gosub90:print"Resultat :":z=14:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}":gosub70 3540 z=16:gosub90:print"{rvon}"a$(f)"{rvof} :";:printtab(38-len(ab$));ab$ 3550 printtab(39-len(ab$));:fori=1tolen(ab$)-1:print"=";:next 3560 z=20:gosub90:ifk=1thenprint"Ausdruck in DM{$a0}!":goto3580 3570 ifk=0thenprint"Ausdruck in Prozent !" 3580 z=23:s=0:gosub90:fori=1to4:print"{rvon}"ba$(i)"{rvof}";:next 3590 y=1:gosub200:ify=4then80 3600 ify=3then1010 3610 ify=2then4500 4000 rem * aenderung * 4010 c=1:gosub10 4020 z=3:s=13:gosub90:print"Aenderung :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 4030 z=5:s=13:fori=9to11:gosub90:print"{rvon}"a$(i)"{rvof} :";a(i):z=z+2:next 4040 z=23:s=0:gosub90:printmd$; 4050 z=5:z1=z:z2=9:s=13:y=9:y1=y:y2=11:sw=2:c=1:gosub100 4060 ifc=0thengosub10:goto3000 4070 z=13:s=13:gosub90:print"{rvon}"a$(y)"{rvof} : ";pm$:gosub95 4080 z=23:s=0:gosub90:printmc$;:z=13:s=27:gosub300:a(y)=val(in$):goto4010 4500 rem * ausdruck * 4510 open4,4,7:print#4,chr$(14);chr$(16);"28ZINSRECHNUNG" 4520 print#4,chr$(16);"28------------";chr$(10) 4530 fori=9to11:print#4,chr$(15);chr$(16);"10*** "a$(i)" : ";a(i):next 4540 gosub70:print#4,chr$(10);chr$(16);"14"a$(f)" : "ab$ 4550 print#4,chr$(16);"15";:fori=1to2+len(a$(f)+ab$):print#4,"=";:next 4560 print#4:print#4:print#4 4570 print#4,chr$(13);chr$(16);"10*** Kapital und Zinssatz werden"; 4580 print#4," in ' DM ' ausgedruckt," 4590 print#4,chr$(16);"16der Zinssatz in ' % ' !" 4600 print#4:fori=1to40:print#4,"==";:next:print#4:print#4:print#4:print#4 4610 close4:fori=56176to56215:pokei,0:next:goto3580 5000 rem * variablenliste * 5010 ma$="{clr}{rvon} Z{$a0}I{$a0}N{$a0}S{$a0}R{$a0}E{$a0}C{$a0}H{$a0}N{$a0}U{$a0}N{$a0}G {rvof}" 5020 mb$="{rvon} F3 u. F5 - Wahl ! 'RETURN' - Eingabe !{rvof}" 5030 mc$="{rvon} F1 - Neu ! Geben Sie ein ! {rvof}" 5040 md$="{rvon} F1 - Resultat ! F3 u. F5 - Wahl ! {rvof}" 5050 ka$=" Kapital ":p$=" Zinssatz ":zi$=" Zinsertrag" 5060 ja$=" Jahre ":mo$=" Monate ":ta$=" Tage ":pm$=".........." 5110 ba$(1)=" Aendern " 5120 ba$(2)=" Kopie " 5130 ba$(3)=" N.Berech." 5140 ba$(4)=" Menue " 5510 a$(1)=" Zinsertrag" 5520 a$(2)=" Kapital " 5530 a$(3)=" Zinssatz " 5540 a$(4)=" Laufzeit " 5550 a$(5)=" Menue " 5560 a$(6)=" Jahre " 5570 a$(7)=" Monate " 5580 a$(8)=" Tage " 5590 a$(13)=" Aendern " 5600 a$(14)=" Resultat " 5610 a$(15)=" Menue ":return
7 poke45,peek(174):poke46,peek(175):clr 8 rem (c) by klaus kloeker 9 clr:dima$(19),a(19),ba$(4):goto1000 10 z1=2:z2=10:s=13:rem * maskeloeschen * 20 forz=z1toz2:gosub80:print" ":next:ifc=0thenreturn 30 z1=12:z2=20:c=0:goto20 40 s=0:forz=12to20:gosub80:print" ":next:return 50 a$(a)=str$(int(a(a)*100+.5)):rem * runden 60 ab$=left$(a$(a),len(a$(a))-2)+"."+right$(a$(a),2):return 70 load"menue",8:rem * 80 poke214,z:poke211,s:sys58732:return:rem * cursorposition 90 a=55869:fori=1597to1622:pokei,100:pokea,1:a=a+1:next:return 100 rem * auswahlroutine 110 gosub80:print"{rvon} {rvof}":fori=1to75:next 120 gosub80:print"{rvon}"a$(y)"{rvof}":fori=1to125:next 130 getg$:ifg$<>chr$(133)andg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then110 140 ifg$=chr$(133)andcthenc=0:return 150 ifg$=chr$(13)thengosub80:print"{rvon}>{rvof}";:return 160 ifg$=chr$(135)then190 170 z=z+sw:y=y+1:ifz>z2thenz=z1:y=y1 180 goto110 190 z=z-sw:y=y-1:ifz<z1thenz=z2:y=y2 195 goto110 200 rem * wahl-fusszeile:s=0 210 z=23:gosub80:print"{rvon} {rvof}";:fori=1to75:next 220 gosub80:print"{rvon}"ba$(y)"{rvof}";:fori=1to175:next 230 getg$:ifg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then210 240 ifg$=chr$(13)thengosub80:print"{rvon}>{rvof}";:return 250 ifg$=chr$(135)then280 260 s=s+10:y=y+1:ifs>30thens=0:y=1 270 goto210 280 s=s-10:y=y-1:ifs<0thens=30:y=4 290 goto210 300 rem * eingaberoutine 310 gosub80 315 in$="" 320 print"{CBM-I}{left}"; 330 getg$:ifg$=""then330 340 g=asc(g$):ifg=13then460 360 ifg<48org>57then410 370 in$=in$+g$:in=len(in$) 380 printg$; 390 ifin>nthenfori=1toin:printchr$(20);:next:goto310 400 goto320 410 ifg=46then370 420 ifg$=chr$(133)then9 430 ifg<>20then320 440 ifin<1then320 450 in$=left$(in$,in-1):goto380 460 pn$="":fori=1to(10-len(in$)):pn$=pn$+".":next:printpn$ 470 iflen(in$)<1then310 480 return 999 : 1000 rem * zinseszinsrechnung 1010 gosub5000:printma$ 1020 a=55388:fori=1076to1906step40:pokei,101:pokea,1:a=a+40:next 1030 a=55736:fori=1464to1474:pokei,100:pokea,1:a=a+1:next 1040 a=55749:fori=1477to1502:pokei,100:pokea,1:a=a+1:next 1050 z=23:s=0:gosub80:printmb$ 1060 z=2:gosub80:print"Auswahl :":print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 1070 z=4:fori=1to5:gosub80:print"{rvon}"a$(i)"{rvof}":z=z+1:next 1080 z=4:z1=z:z2=8:s=0:y=1:y1=y:y2=5:sw=1:c=0:gosub100:f=y:iff=5then70 1090 iff=1thena$(9)=ko$:a$(10)=p$:a$(11)=n$:k=1 1100 iff=2thena$(9)=kn$:a$(10)=p$:a$(11)=n$:k=1 1110 iff=3thena$(9)=ko$:a$(10)=kn$:a$(11)=n$:k=0 1120 iff=4thena$(9)=ko$:a$(10)=kn$:a$(11)=p$:k=2 2000 rem * eingabemaske 2010 z=2:s=13:gosub80:print"Eingabe :":z=3:gosub80:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 2020 z=4:fori=9to12:s=13:gosub80:print"{rvon}"a$(i)"{rvof} : ";pm$:z=z+2:next 2030 z=23:s=0:gosub80:printmc$; 2040 z=4:s=27:n=10:gosub300:a(9)=val(in$) 2050 z=6:gosub300:a(10)=val(in$) 2060 z=8:gosub300:a(11)=val(in$) 2065 z=10:n=9:gosub300:a(12)=val(in$) 2070 z=13:s=13:gosub80:print"Eingabe korrekt ? (j/n):":gosub90 2080 z=13:s=38:gosub80:print"{CBM-I}{left}"; 2090 getg$:ifg$<>"j"andg$<>"n"then2090 2100 printg$:ifg$="j"theny=1 2110 ifg$="n"theny=0 2120 geti$:ifi$<>chr$(13)andi$<>chr$(20)then2120 2130 ifi$=chr$(20)then2080 2140 c=1:gosub10:ify=0then2010 3000 rem * rechnung 3010 iff=1thena(16)=a(9)*(1+(a(10)/(a(12)*100)))^(a(11)*a(12)) 3020 iff=1thena(19)=100*((1+(a(10)/(a(12)*100)))^a(12)-1):d=1 3030 iff=2thena(16)=a(9)/(1+(a(10)/(a(12)*100)))^(a(11)*a(12)):d=0 3040 iff=3thena(16)=((a(10)/a(9))^(1/(a(11)*a(12)))-1)*100*a(12):d=0 3050 iff=4thena(16)=(log(a(10)/a(9))/log(1+(a(11)/(a(12)*100))))/a(12):d=0 3500 rem * screen 3510 z=2:s=13:gosub80:print"Eingabe :":z=3:gosub80:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3520 z=4:fori=9to12:gosub80:printa$(i)" :"a(i):z=z+2:next 3530 z=13:gosub80::print"Resultat :":z=14:gosub80:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}":a=16:gosub50 3540 z=15:gosub80:print"{rvon}"a$(f)"{rvof} :"tab(38-len(ab$));ab$ 3550 printtab(39-len(ab$));:fori=1tolen(ab$)-1:print"=";:next 3560 z=20:gosub80:ifk=1thenprint"Ausdruck in DM !":goto3580 3570 ifk=0thenprint"Ausdruck in Prozent !" 3580 ifd=0then3620 3590 z=13:s=0:gosub80::print"{rvon}"a$(17)"{rvof}":print"{rvon}"a$(18)"{rvof}" 3600 z=17:s=1:gosub80:a=19:gosub50:printab$" %" 3610 printtab(7-len(ab$));:fori=1tolen(ab$)+1:print"=";:next 3620 z=23:s=0:gosub80:fori=1to4:print"{rvon}"ba$(i)"{rvof}";:next 3630 y=1:gosub200:ify=4then70 3640 ify=3then1010 3650 ify=2then4500 4000 rem * aenderung 4010 c=1:gosub10:ifdthengosub40 4020 z=2:s=13:gosub80::print"Aenderung :":z=3:gosub80:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 4030 z=4:s=13::fori=9to12:gosub80:print"{rvon}"a$(i)"{rvof} :";a(i):z=z+2:next 4040 z=23:s=0:gosub80:printmd$; 4050 z=4:z1=z:z2=10:s=13:y=9:y1=y:y2=12:sw=2:c=1:gosub100 4060 ifc=0thengosub10:goto3000 4070 z=13:s=13:gosub80:print"{rvon}"a$(y)"{rvof} : ";pm$:gosub90 4080 z=23:s=0:gosub80:printmc$;:z=13:s=27:gosub300:a(y)=val(in$):goto4010 4500 rem * printer 4505 ta$=chr$(10):tb$=chr$(16) 4510 open4,4,7:print#4,chr$(14);tb$"25ZINSESZINSRECHNUNG" 4520 print#4,tb$"25-----------------"ta$ 4530 fori=9to12:print#4,chr$(15)tb$"10*** "a$(i)" : "a(i):next 4540 a=16:gosub50:print#4,ta$;tb$"14"a$(f)" : "ab$ 4550 print#4,tb$"15";:fori=1to2+len(a$(f)+ab$):print#4,"=";:next 4560 print#4,chr$(13):ifdthengosub4620 4565 print#4,ta$;ta$;ta$ 4570 print#4,chr$(13);tb$"10*** Kapital und Zinssatz werden"; 4580 print#4," in ' DM ' ausgedruckt," 4590 print#4,tb$"16Zinssatz und Jahreszins (falls vorhanden) in ' %{$a0}' !" 4600 print#4:fori=1to40:print#4,"==";:next:print#4,ta$;ta$;ta$ 4610 close4:fori=56176to56215:pokei,0:next:goto3620 4620 ifdthenprint#4,ta$;tb$"15"a$(17)" "a$(18)" : "; 4630 a=19:gosub50:print#4,ab$ 4640 print#4,tb$"15";:fori=1tolen(a$(18)+a$(19)+ab$)+10:print#4,"=";:next 4650 return 5000 rem * variablen 5010 ma$="{clr}{rvon} Z{$a0}I{$a0}N{$a0}S{$a0}E{$a0}S{$a0}Z{$a0}I{$a0}N{$a0}S{$a0}R{$a0}E{$a0}C{$a0}H{$a0}N{$a0}U{$a0}N{$a0}G{$a0}{$a0}{rvof}" 5020 mb$="{rvon} F3 u. F5 - Wahl ! 'RETURN' - Eingabe !{rvof}" 5030 mc$="{rvon} F1 - Neu ! Geben Sie ein ! {rvof}" 5040 md$="{rvon} F1 - Resultat ! F3 u. F5 - Wahl ! {rvof}" 5050 ko$=" An.kapital":p$=" Zinssatz ":kn$=" Endkapital" 5060 n$=" Jahre ":a$(12)=" Zinsper./a":pm$=".........." 5100 ba$(1)=" Aendern " 5110 ba$(2)=" Kopie " 5120 ba$(3)=" Neu " 5130 ba$(4)=" Menue " 5500 a$(1)=kn$ 5510 a$(2)=ko$ 5520 a$(3)=p$ 5530 a$(4)=" Laufzeit " 5540 a$(5)=" Menue " 5600 a$(13)=" Aendern " 5610 a$(14)=" Resultat " 5620 a$(15)=" Menue " 5630 a$(17)="Effektiver" 5640 a$(18)="Jahreszins":return
8 poke45,peek(174):poke46,peek(175):clr 9 clr:dima$(15),a(15):goto1000 10 z1=3:z2=9:s=13:rem * maske loeschen * 20 forz=z1toz2:gosub90:print" ":next:ifc=0thenreturn 30 z1=12:z2=20:c=0:goto20 50 return 70 a$(12)=str$(int(a(12)*100+.5)):rem * runden 75 ab$=left$(a$(12),len(a$(12))-2)+"."+right$(a$(12),2):return 80 load"menue",8:rem *load menue 90 poke214,z:poke211,s:sys58732:return:rem * cursorposition 95 a=55869:fori=1597to1622:pokei,100:pokea,1:a=a+1:next:return 100 rem * auswahlroutine * 110 gosub90:print"{rvon} {rvof}":fori=1to75:nexti 120 gosub90:print"{rvon}"a$(y)"{rvof}":fori=1to125:next 130 getg$:ifg$<>chr$(133)andg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then110 140 ifg$=chr$(133)andcthenc=0:return 150 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}":return 160 ifg$=chr$(135)then190 170 z=z+sw:y=y+1:ifz>z2thenz=z1:y=y1 180 goto110 190 z=z-sw:y=y-1:ifz<z1thenz=z2:y=y2 195 goto110 200 rem * wahl-fusszeile *:s=0 210 z=23:gosub90:print"{rvon} {rvof}";:fori=1to75:next 220 gosub90:print"{rvon}"ba$(y)"{rvof}";:fori=1to175:next 230 getg$:ifg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then210 240 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}";:return 250 ifg$=chr$(135)then280 260 s=s+10:y=y+1:ifs>31thens=0:y=1 270 goto210 280 s=s-10:y=y-1:ifs<0thens=30:y=4 290 goto210 300 rem * eingaberoutine * 310 gosub90 320 in$="" 330 print"{CBM-I}{left}"; 340 getg$:ifg$=""then340 350 g=asc(g$):ifg=13then460 360 ifg=13thenreturn 370 ifg$<"0"org$>"9"then420 380 in$=in$+g$ 390 printg$; 400 iflen(in$)>nthenfori=1tolen(in$):printchr$(20);:next:goto320 410 goto330 420 ifg=46then380 425 ifg$=chr$(133)then9 430 ifg<>20then330 440 iflen(in$)<1then330 450 in$=left$(in$,len(in$)-1):goto390 460 pn$="":fori=1to(10-len(in$)):pn$=pn$+".":next:printpn$ 470 iflen(in$)<1then310 480 return 999 : 1000 rem ** dikontieren ** 1010 gosub5000:printma$ 1020 a=55388:fori=1076to1906step40:pokei,101:pokea,1:a=a+40:next 1030 a=55736:fori=1464to1474:pokei,100:pokea,1:a=a+1:next 1040 a=55749:fori=1477to1502:pokei,100:pokea,1:a=a+1:next 1050 z=23:s=0:gosub90:printmb$ 1060 z=3:gosub90:print"Auswahl :":print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 1070 z=5:fori=1to5:gosub90:print"{rvon}"a$(i)"{rvof}":z=z+1:next 1080 z=5:z1=z:z2=9:s=0:y=1:y1=y:y2=5:sw=1:c=0:gosub100:f=y:iff=5then80 1150 iff=1thena$(9)=kn$:a$(10)=p$:a$(11)=ja$:k=1 1160 iff=2thena$(9)=kb$:a$(10)=p$:a$(11)=ja$:k=1 1170 iff=3thena$(9)=kn$:a$(10)=kb$:a$(11)=ja$:k=0 1180 iff=4thena$(9)=kn$:a$(10)=kb$:a$(11)=p$:k=2 2000 rem * eingabemaske * 2010 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 2020 z=5:fori=9to11:s=13:gosub90:print"{rvon}"a$(i)"{rvof} : ";pm$ 2030 z=z+2:next:z=23:s=0:gosub90:printmc$ 2040 z=5:s=27:n=10:gosub300:a(9)=val(in$) 2050 z=7:gosub300:a(10)=val(in$) 2060 z=9:gosub300:a(11)=val(in$) 2070 z=13:s=13:gosub90:print"Eingabe korrekt ? (j/n):":gosub95 2080 z=13:s=38:gosub90:print"{CBM-I}{left}"; 2090 getg$:ifg$<>"j"andg$<>"n"then2090 2100 printg$:ifg$="j"theny=1 2110 ifg$="n"theny=0 2120 geti$:ifi$<>chr$(13)andi$<>chr$(20)then2120 2130 ifi$=chr$(20)then2080 2140 c=1:gosub10:ify=0then2010 3000 rem * rechnung * 3010 iff=1thena(12)=a(9)*(1/(1+(a(10)/100))^a(11)) 3020 iff=2thena(12)=a(9)/(1/(1+(a(10)/100))^a(11)) 3030 iff=3thena(12)=((a(9)/a(10))^(1/a(11))-1)*100 3040 iff=4thena(12)=log(a(9)/a(10))/log(1+(a(11)/100)) 3500 rem * bildschirm 3510 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3520 z=5:fori=9to11:gosub90:printa$(i)" :"a(i):z=z+2:next 3530 z=13:gosub90:print"Resultat :":z=14:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}":gosub70 3540 z=16:gosub90:print"{rvon}"a$(f)"{rvof} :";:printtab(38-len(ab$));ab$ 3550 printtab(39-len(ab$));:fori=1tolen(ab$)-1:print"=";:next 3560 z=20:gosub90:ifk=1thenprint"Ausdruck in DM{$a0}!":goto3580 3570 ifk=0thenprint"Ausdruck in Prozent !" 3580 z=23:s=0:gosub90:fori=1to4:print"{rvon}"ba$(i)"{rvof}";:next 3590 y=1:gosub200:ify=4then80 3600 ify=3then1010 3610 ify=2then4500 4000 rem * aenderung * 4010 c=1:gosub10 4020 z=3:s=13:gosub90:print"Aenderung :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 4030 z=5:s=13:fori=9to11:gosub90:print"{rvon}"a$(i)"{rvof} :";a(i):z=z+2:next 4040 z=23:s=0:gosub90:printmd$; 4050 z=5:z1=z:z2=9:s=13:y=9:y1=y:y2=11:sw=2:c=1:gosub100 4060 ifc=0thengosub10:goto3000 4070 z=13:s=13:gosub90:print"{rvon}"a$(y)"{rvof} : "pm$:gosub95 4080 z=23:s=0:gosub90:printmc$;:z=13:s=27:gosub300:a(y)=val(in$):goto4010 4500 rem * ausdruck * 4505 ta$=chr$(10):tb$=chr$(16) 4510 open4,4,7:print#4,chr$(14);tb$"10DISKONTIEREN EINES{$a0}KAPITALS" 4520 print#4,tb$"10---------------------------"ta$ 4530 fori=9to11:print#4,chr$(15);tb$"10*** "a$(i)" : ";a(i):next 4540 gosub70:print#4,ta$;tb$"14"a$(f)" : "ab$ 4550 print#4,tb$"15";:fori=1to2+len(a$(f)+ab$):print#4,"=";:next 4560 print#4,ta$;ta$;ta$ 4570 print#4,chr$(13);tb$"10*** Endkapital und Barwert werden"; 4580 print#4," in ' DM ' ausgedruckt," 4590 print#4,tb$"16der Zinssatz in ' % ' !" 4600 print#4:fori=1to40:print#4,"==";:next:print#4,ta$;ta$;ta$;ta$ 4610 close4:fori=56176to56215:pokei,0:next:goto3580 5000 rem * variablenliste * 5010 ma$="{clr}{rvon} DISKONTIEREN{$a0}EINES{$a0}KAPITALS {rvof}" 5020 mb$="{rvon} F3 u. F5 - Wahl ! 'RETURN' - Eingabe !{rvof}" 5030 mc$="{rvon} F1 - Neu ! Geben Sie ein ! {rvof}" 5040 md$="{rvon} F1 - Resultat ! F3 u. F5 - Wahl ! {rvof}" 5050 kn$=" Endkapital":p$=" Zinssatz ":ja$=" Jahre ":pm$=".........." 5060 kb$=" Barwert " 5110 ba$(1)=" Aendern " 5120 ba$(2)=" Kopie " 5130 ba$(3)=" Neu " 5140 ba$(4)=" Menue " 5510 a$(1)=" Barwert " 5520 a$(2)=" Endkapital" 5530 a$(3)=" Zinssatz " 5540 a$(4)=" Laufzeit " 5550 a$(5)=" Menue " 5590 a$(13)=" Aendern " 5600 a$(14)=" Resultat " 5610 a$(15)=" Menue ":return
7 poke45,peek(174):poke46,peek(175):clr 8 rem (c) by klaus kloeker 9 clr:dima$(15),e(50,6),e$(50,6):goto1000 10 z1=3:z2=9:s=13:rem * maske loeschen * 15 forz=z1toz2:gosub90:print" ":next:ifc=0thenreturn 20 z1=13:z2=21:c=0:goto15 30 forj=2to6:e$(i,j)=str$(int(e(i,j)*10+.5)):rem * format tabelle 35 e$(i,j)=left$(e$(i,j),len(e$(i,j))-1)+"."+right$(e$(i,j),1) 40 l$="":fora=1to10-len(e$(i,j)):l$=l$+".":next 45 e$(i,j)=l$+e$(i,j) 50 iflen(e$(i,j))>10thene$(i,j)=right$(e$(i,j),10) 55 next:return 70 load"menue",8:rem *load menue 80 a=55909:fori=1637to1662:pokei,100:pokea,1:a=a+1:next:return 90 poke214,z:poke211,s:sys58732:return:rem * cursorposition * 95 fori=56216to56255:pokei,o:next:return 100 rem * auswahlroutine * 110 gosub90:print"{rvon} {rvof}":fori=1to75:nexti 120 gosub90:print"{rvon}"a$(y)"{rvof}":fori=1to125:next 130 getg$:ifg$<>chr$(133)andg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then110 140 ifg$=chr$(133)andcthenc=0:return 150 ifg$=chr$(13)thengosub90:a$(y)=">"+mid$(a$(y),2,10):print"{rvon}"a$(y)"{rvof}":return 155 ifg$=chr$(134)then170 160 ifg$=chr$(135)then190 165 goto110 170 z=z+sw:y=y+1:ifz>z2thenz=z1:y=y1 180 goto110 190 z=z-sw:y=y-1:ifz<z1thenz=z2:y=y2 195 goto110 200 rem * wahl-fusszeile *:s=0 210 z=23:gosub90:print"{rvon} {rvof}";:fori=1to75:next 220 gosub90:print"{rvon}"ba$(y)"{rvof}";:fori=1to175:next 230 getg$:ifg$<>chr$(134)andg$<>chr$(135)andg$<>chr$(13)then210 240 ifg$=chr$(13)thengosub90:print"{rvon}>{rvof}";:return 250 ifg$=chr$(135)then280 260 s=s+8:y=y+1:ifs>32thens=0:y=1 270 goto210 280 s=s-8:y=y-1:ifs<0thens=32:y=5 290 goto210 300 rem * eingaberoutine * 310 gosub90 320 in$="" 330 print"{CBM-I}{left}"; 340 getg$:ifg$=""then340 350 g=asc(g$):ifg=13thengoto460 360 ifg=13thenreturn 370 ifg$<"0"org$>"9"then420 380 in$=in$+g$ 390 printg$; 400 iflen(in$)>nthenfori=1tolen(in$):printchr$(20);:next:goto320 410 goto330 420 ifg=46then380 425 ifg$=chr$(133)then9 430 ifg<>20then330 440 iflen(in$)<1then330 450 in$=left$(in$,len(in$)-1):goto390 460 pn$="":fori=1to(9-len(in$)):pn$=pn$+".":next:printpn$ 470 iflen(in$)<1then310 480 return 900 rem * maske * 910 printma$:a=55388:fori=1076to1906step40:pokei,101:pokea,1:a=a+40:next 920 a=55776:fori=1504to1514:pokei,100:pokea,1:a=a+1:next 930 a=55785:fori=1517to1546:pokei,100:pokea,1:a=a+1:next 950 z=3:s=0:gosub90:print"Auswahl :":print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}":print"{rvon} - - - - - {rvof}" 960 z=6:fori=1to3:gosub90:print"{rvon}"a$(i)"{rvof}":print"{rvon} - - - - - {rvof}":z=z+2:next 970 return 999 : 1000 rem ** tilgungsrechnung * 1010 gosub6000:gosub900 1020 z=23:s=0:gosub90:printmb$ 1080 z=6:z1=z:z2=10:s=0:y=1:y1=y:y2=3:sw=2:c=0:gosub100:f=y:iff=3then70 2000 rem * eingabemaske * 2010 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 2020 z=5:fori=4to6:s=13:gosub90:print"{rvon}"a$(i)"{rvof} : ";pm$ 2030 z=z+2:next:z=23:s=0:gosub90:printmc$ 2040 z=5:s=27:n=9:forj=4to6:gosub300:a(j)=val(in$):z=z+2:next 2070 z=14:s=13:gosub90:print"Eingabe korrekt ? (j/n):":gosub80 2080 z=14:s=38:gosub90:print"{CBM-I}{left}"; 2090 getg$:ifg$<>"j"andg$<>"n"then2090 2100 printg$:ifg$="j"theny=1 2110 ifg$="n"theny=0 2120 geti$:ifi$<>chr$(13)andi$<>chr$(20)then2120 2130 ifi$=chr$(20)then2080 2140 c=1:gosub10:ify=0then2010 3000 rem * rechnung * 3005 print"{clr}":z=23:s=23:gosub90:printmg$:ee(3)=0:ee(5)=0 3010 iff=2then3500 3100 rem * ratentilgung * 3110 t1=a(4)/a(6):j2=0:t2=0 3120 fori=1toa(6):r1=a(4)-j2*t2:z1=r1*(a(5)/100):a1=z1+t1 3130 e(i,2)=r1:e(i,3)=z1:e(i,4)=t1:e(i,5)=a1:e(i,6)=a1/12:gosub30 3140 forj=3to5step2:ee(j)=ee(j)+e(i,j):next 3150 j2=j2+1:t2=(a(4)/a(6)):next:goto3700 3500 rem * aunnuitaetentilgung * 3510 q1=a(5)/100+1:t1=a(4)*((q1-1)/(q1^a(6)-1)) 3520 z1=a(4)*(a(5)/100):a1=t1+z1:r1=a(4) 3530 e(1,2)=r1:e(1,3)=z1:e(1,4)=t1:e(1,5)=a1:e(1,6)=a1/12:i=1:gosub30 3540 t2=t1:fori=2toa(6):r1=r1-t2:z2=r1*(a(5)/100):t2=t2*q1 3550 e(i,2)=r1:e(i,3)=z2:e(i,4)=t2:e(i,5)=a1:e(i,6)=a1/12:gosub30 3560 forj=3to5step2:ee(j)=ee(j)+e(i,j):nextj:nexti 3570 ee(3)=ee(3)+e(1,3):ee(5)=ee(5)+e(1,5) 3700 ee(3)=ee(3)/2:ee(5)=ee(5)/2 3710 fori=3to5step2:ee$(i)=str$(int(ee(i)*10/.5)) 3720 ee$(i)=left$(ee$(i),len(ee$(i))-1)+"."+right$(ee$(i),1):next 3800 rem * screen * 3805 gosub900 3810 z=3:s=13:gosub90:print"Eingabe :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3820 z=5:s=13:fori=4to6:gosub90:printa$(i)" :"a(i):z=z+2:next 3830 z=14:s=13:gosub90:print"Resultat :":z=15:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 3840 z=17:forj=3to5step2:gosub90:print"{rvon}"ec$(j)"{rvof}:"ee$(j):z=z+2:next 3850 z=21:gosub90:print"Ausdruck in 'DM' !" 3860 za=val(ee$(3))/(val(ee$(5))/100) 3870 z=14:s=0:gosub90:print"{rvon} Zins- {rvof}":z=15:gosub90:print"{rvon} anteil {rvof}" 3880 za$=str$(za):ifza<10thenza$=" "+za$ 3890 za$=left$(za$,5):z=17:s=2:gosub90:printza$;" %" 3900 z=18:s=3:gosub90:print"======" 3910 z=23:s=0:gosub90:fori=1to5:print"{rvon}"ba$(i)"{rvof}";:next 3920 y=1:gosub200:ify=5then70 3930 ify=4then9 3940 ify=3then5500 3950 ify=2then5000 4000 rem * tabelle * 4010 gosub95:x1=2:x2=4:y1=1:y2=a(6) 4020 z=1:s=0:gosub90:fori=1to22:printmd$:next:z=22:gosub90:printmh$ 4030 z=3:s=0:gosub90:printm$(1) 4040 z=3:s=6:fori=x1tox2:gosub90:printm$(i):s=s+11:next 4050 z=4:s=1:gosub90:fori=1to37:print"=";:next 4100 z=6:s=1:fori=y1toy2 4105 i$=str$(i):ifi<10theni$="."+i$ 4107 gosub90:print"."+i$:s=6 4110 forj=x1tox2 4120 gosub90:printe$(i,j) 4130 s=s+11:nextj 4140 ifpeek(214)>15theny2=i:y1=y2-9:goto4200 4150 z=z+1:s=1:nexti 4200 z=17:s=1:gosub90:forj=1to38:print"-";:next 4500 wait203,63:getg$ 4510 ifg$=chr$(29)then4550 4520 ifg$=chr$(157)then4580 4530 ifg$=chr$(17)then4610 4540 ifg$=chr$(145)then4640 4543 ifg$=chr$(133)then3800 4545 goto4500 4550 x1=x1+1:x2=x2+1:rem * -> 4560 ifx2>6thenx2=6:x1=4:goto4500 4570 goto4030 4580 x1=x1-1:x2=x2-1:rem * <- 4590 ifx1<2thenx1=2:x2=4:goto4500 4600 goto4030 4610 ifa(6)<10thengoto4500 4615 y1=y1+10:y2=y2+10:rem * down 4620 ify2>a(6)theny2=a(6):y1=y2-9:ifi=a(6)then4500 4630 goto4030 4640 ifa(6)<10thengoto4500 4645 y1=y1-10:y2=y2-10:rem * up 4650 ify1<1theny1=1:y2=y1+9:ifi<11then4500 4660 goto4030 5000 rem * aenderung * 5010 c=1:gosub10:s=0:forz=13to20:gosub90:print" ":next 5020 z=3:s=13:gosub90:print"Aenderung :":z=4:gosub90:print"{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 5030 z=5:s=13:fori=4to6:gosub90:print"{rvon}"a$(i)"{rvof} :";a(i):z=z+2:next 5040 z=23:s=0:gosub90:printmf$; 5050 z=5:z1=z:z2=9:s=13:y=4:y1=y:y2=6:sw=2:c=1:gosub100 5060 ifc=0goto3000 5070 z=14:s=13:gosub90:print"{rvon}"a$(y)"{rvof} : ";pm$:gosub80 5080 z=23:s=0:gosub90:printmc$;:z=14:s=27:gosub300:a(y)=val(in$) 5090 a$(y)=" "+mid$(a$(y),2,10):goto5010 5500 rem * printer 5505 tb$=chr$(16):ta$=chr$(10) 5510 open4,4,7:print#4,chr$(14)tb$"10Ausdruck eines Tilgungsplanes" 5520 print#4,tb$;"10-----------------------------"ta$ 5530 fori=4to6:print#4,chr$(15)tb$"10*** "a$(i)" : "a(i):next 5540 print#4,ta$;ta$;ta$ 5550 fori=1to6:print#4," "m$(i);:next:print#4," " 5560 fori=1to40:print#4,"--";:next:print#4 5570 fori=1toa(6):i$=str$(i):ifi<10theni$="."+i$ 5575 print#4," ."+i$" "; 5580 forj=2to6:print#4," .."e$(i,j);:nextj:print#4," ":nexti 5590 fori=1to40:print#4,"--";:next:print#4 5595 print#4," Gesamt:"; 5600 po=27:forj=3to5step2:print#4,spc(po-len(ee$(j)))ee$(j);:po=26:next 5610 print#4,ta$;ta$;tb$"10*** Ausdruck der Tabelle erfolgt in 'DM' !" 5620 print#4,tb$"10*** Berechnung der Zinsen erfolgt am Ende des Jahres !" 5630 print#4,ta$;tb$"10*** Tilgung konstant = Ratentilgung !!" 5640 print#4,tb$"10*** Annuitaet konstant = Annuitaetentilgung !!" 5650 print#4:fori=1to40:print#4,"==";:nexti:print#4,ta$;ta$;ta$;ta$ 5660 close4:goto3860 6000 rem * variablen * 6010 ma$="{clr}{rvon} T I{$a0}L{$a0}G{$a0}U{$a0}N{$a0}G{$a0}S{$a0}R{$a0}E{$a0}C{$a0}H{$a0}N{$a0}U{$a0}N{$a0}G {rvof}" 6020 mb$="{rvon} F3 u. F5 - Wahl ! 'RETURN' - Eingabe !" 6030 mc$="{rvon} F1 - Auswahl ! Geben Sie ein ! {rvof}" 6040 md$=" " 6050 me$="{rvon} {rvof}" 6060 mf$="{rvon} F1 - Resultat ! F3 u. F5 - Wahl ! {rvof}" 6070 mg$="Bitte Warten !!!" 6080 mh$="{rvon} F1 - Resultat ! Cursor - Steuern ! {rvof}" 6100 a$(1)=" Ratentilg." 6110 a$(2)=" Annu.tilg." 6120 a$(3)=" Menue " 6130 a$(4)=" Darlehen " 6140 a$(5)=" Zinssatz " 6150 a$(6)=" Jahre " 6160 pm$="........." 6200 m$(1)=" Jahr " 6210 m$(2)="Restschuld" 6220 m$(3)=" Zinsen" 6230 m$(4)=" Tilgung" 6240 m$(5)=" Annuitaet" 6250 m$(6)=" Annu./Mon" 6300 ec$(3)=" Zinsen ges." 6310 ec$(5)=" Annuit. ges." 6400 ba$(1)=" Tabelle" 6410 ba$(2)=" Aendern" 6420 ba$(3)=" Kopie " 6430 ba$(4)=" Neu " 6440 ba$(5)=" Menue " 6500 return