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:
|
|
|
|