C 64
Anwendung des Monats

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:

(Klaus Klöker/rg)
Programmdokumentation: Menü
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
Variablenliste: Menü
na$ (...) = Nummern der Programme
nb$ (...) = Namen der Programme
Z = Zeile
S = Spalte
Y = Index der indizierten Variablen
g$ = Eingabevariable der get-Anweisung
Programmdokumentation: Zinsrechnung
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.
Variablenliste: Zinsrechnung
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
Programmdokumentation: Tilgungsrechnung
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
Variablenliste: Tilgungsrechnung
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
Listing »Menüprogramm«
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
Listing »Zinsrechung«
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
Listing »Zinseszinsrechnung«
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
Listing »Diskontieren eines Kapitals«
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
Listing »Tilgungsplan«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →