%%HP: T(3)A(R)F(.);
DIR
  KNVR
  \<<
    IF DEPTH 2. \>=
    THEN 'n' STO 'j'
STO 1. j + n ^ 1. - j
/ 1. j + * 'kn' STO
      \<< { kn n j LOE
} PURGE
      \>> 'LOE' STO 2.
FIX
"Vorsch\252ssige Raten:
 Zinssatz pro Zahlung 
 i = "
j 100. * \->STR +
" %
 " + STD n \->STR +
" Zahlungen

Endkapital Kn
  = "
+ 2. FIX kn \->STR +
" \.x Rate" + CLLCD 1.
DISP 0. WAIT DROP
    ELSE
"Vorsch. Raten

 Im Stack
     fehlen:
 i = Zinssatz
 n = Zahlungen"
2000. .1 BEEP 1. .1
BEEP 2000. .1 BEEP
CLLCD MSGBOX
    END
  \>>
  KNNR
  \<<
    IF DEPTH 2. \>=
    THEN 'n' STO 'j'
STO 1. j + n ^ 1. - j
/ 'kn' STO
      \<< { kn n j LOE
} PURGE
      \>> 'LOE' STO 2.
FIX
"Nachsch\252ssige Raten:
 Zinssatz pro Zahlung 
 i = "
j 100. * \->STR +
" %
 " + STD n \->STR +
" Zahlungen

Endkapital Kn
  = "
+ 2. FIX kn \->STR +
" \.x Rate" + CLLCD 1.
DISP 0. WAIT DROP
    ELSE
"Nachsch. Raten

 Im Stack
     fehlen:
 i = Zinssatz
 n = Zahlungen"
2000. .1 BEEP 1. .1
BEEP 2000. .1 BEEP
CLLCD MSGBOX
    END
  \>>
  ZINSS
  \<<
    IF DEPTH 2. \>=
    THEN 2. FIX 1.
'it' STO 1.01 'q' STO
'n' STO 'kn' STO
      IF 'kn<n'
      THEN kn n 'kn'
STO 'n' STO
      END
      IF 'kn\=/n AND kn
>0. AND n>0.' \->NUM
      THEN
        WHILE q 1. -
kn * q / 1. + LN n /
EXP DUP q - ABS
.000000000001 >
        REPEAT 1.
'it' STO+ 'q' STO
        END DROP
      ELSE 1. 'q' STO
"Fehler" DUP 'kn' STO
'n' STO
      END
      \<< { it kn n q j
LOE } PURGE
      \>> 'LOE' STO
CLLCD
"Endkapital Kn = 
 "
kn \->STR +
"-fache Rate
 bei " +
n R\->I \->STR +
" Zahlungen
 mit i = "
+ q 1. - DUP 'j' STO
{ it kn n q j LOE }
ORDER 100. * 2. FIX
\->STR STD +
" % Zins
         pro Zahlung
----------------------
 "
+ it IP R\->I \->STR +
" Iterationen" + 1.
DISP 0. WAIT DROP
    ELSE 2000. .1
BEEP CLLCD
" = Zinssatz = 
Im Stack
     fehlen:
 kn = Kn/R
 n Zahlungen
"
MSGBOX
    END
  \>>
  BWFAK
  \<< CLLCD
    IF DEPTH 2. \>=
    THEN SWAP 'j' STO
j 1. + 'q' STO 'n'
STO "F\252r:
  i = " 3.
FIX j \->STR +
"
  n = " n \->STR + +
'((1.+j)^n-1.)/((1.+j
)^n*j)' EVAL 'bwf'
STO 5. FIX "
bwf = "
bwf \->STR + "
a   = "
+ bwf INV DUP 'a' STO
\->STR + +
      \<< { q j n bwf a
LOEF } PURGE
      \>> 'LOEF' STO {
q j n bwf a LOEF }
ORDER MSGBOX
    ELSE 3000. .1
BEEP
"Barwertfaktor:
 Im Stack
     fehlen:
 i = Zinssatz
 n = Zahlungen"
MSGBOX
    END
  \>>
  BWDEF 'bwf(j,n)=((
1.+j)^n-1.)/((1.+j)^n
*j)'
END