Die ANNUITY-Funktion liefert einen numerischen Wert, der die gleichbleibende Jahresrate (Annuität), ausgehend von einem Kreditbetrag 1, darstellt. Die Laufzeit des Kredits wird mit argument-2 angegeben. Der Zinssatz wird mit argument-1 angegeben und am Ende jeden Jahres der angegebenen Laufzeit berechnet.
Funktionstyp: numerisch.
Format
FUNCTION ANNUITY (argument-1 argument-2)
Argumente
argument-1 muss zur Klasse numerisch gehören.
Der Wert von argument-1 muss größer oder gleich null sein.
argument-2 muss positiv ganzzahlig sein.
Returnwerte
Wenn der Wert von argument-1 gleich null ist, errechnet sich der Wert der Funktion aus: 1 / argument-2
Wenn der Wert von argument-1 ungleich null ist, errechnet sich der Wert der Funktion aus:
argument-1 / (1-(1 + argument-1)**(-argument-2))Der Fehler-Returnwert ist
-2.
Siehe auch: PRESENT-VALUE
Beispiel 9-2
Das folgende Programm berechnet die jährlichen Raten für einen Kredit in der Höhe von 100000 zu drei verschiedenen Zinssätzen bei einer Laufzeit von 1 bis 10 Jahren.
IDENTIFICATION DIVISION.
PROGRAM-ID. ZINSTAB.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
TERMINAL IS FENSTER
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 KAPITAL PIC 9(9).
01 LZ PIC 99.
01 RECHEN-TABELLE.
02 ZINSSATZ PIC V9(7) OCCURS 3 INDEXED BY R-IND-S.
01 TITELZEILE.
02 PIC XX VALUE SPACE.
02 OCCURS 3 INDEXED BY T-IND-S.
10 ZINS-ED PIC BBBZZ9,999999B.
10 PIC X VALUE FROM (1) "%" REPEATED TO END.
01 AUSGABE-TABELLE.
02 ZEILE OCCURS 10 INDEXED BY A-IND-Z.
10 LAUFZEIT PIC Z9.
10 RATE PIC BZZZBZZZBZZ9,99 OCCURS 3 INDEXED BY A-IND-S.
PROCEDURE DIVISION.
ONLY SECTION.
PARA.
MOVE 100000 TO KAPITAL
*** Zinssatz 5,75 % ***
MOVE 0,0575 TO ZINSSATZ (1)
*** Zinssatz 8,90 % ***
MOVE 0,0890 TO ZINSSATZ (2)
*** Zinssatz 12,10 % ***
MOVE 0,1210 TO ZINSSATZ (3)
PERFORM VARYING R-IND-S FROM 1 BY 1 UNTIL R-IND-S > 3
SET T-IND-S TO R-IND-S
MULTIPLY ZINSSATZ (R-IND-S) BY 100 GIVING ZINS-ED (T-IND-S)
END-PERFORM
PERFORM VARYING A-IND-Z FROM 1 BY 1 UNTIL A-IND-Z > 10
PERFORM VARYING A-IND-S FROM 1 BY 1 UNTIL A-IND-S > 3
SET R-IND-S TO A-IND-S
SET LZ TO A-IND-Z
MOVE LZ TO LAUFZEIT (A-IND-Z)
COMPUTE RATE (A-IND-Z A-IND-S) = KAPITAL *
FUNCTION ANNUITY (ZINSSATZ (R-IND-S) LZ)
END-PERFORM
END-PERFORM
DISPLAY TITELZEILE UPON FENSTER
PERFORM VARYING A-IND-Z FROM 1 BY 1 UNTIL A-IND-Z > 10
DISPLAY ZEILE (A-IND-Z) UPON FENSTER
END-PERFORM
STOP RUN.
Ergebnis:
|
|
|
|