8.11 Annuität


Für einen Hypothekenkredit soll die Annuität (d.h. der Ratenbetrag für den Zazhlungszeitraum) 
berechnet werden.
Eingabewerte sind : k = Kapital runde Werte verwenden z = Zinsatz z.B. 7.25 l = Laufzeit Volle Jahre <= 30 r = Raten/Jahr 12, 6, 4, 2, 1 Die Formel dafür lautet:
                     Q   -  1
 a =   k * Qlr  * ----------------
		     Qlr   -  1
 
Der Aufzinsungsfaktor Q wird wie folgt berechnet :
		z
  Q = 1 +   ------------
		100 * r
Das Script soll die Ausgabewerte in tabellerischer Übersicht in eine Datei schreiben, damit der Kunde eine Entscheidungsgrundlage hat. Dabei sind Jahre automatisch zu variieren. Zum besseren Verständnis der I/O-Anweisungen soll mit getline und Umleitung gearbeitet werden Beachten Sie, daß die Ausgabeumleitung > anders als in der Shell wirkt.
  Kapital      Zinssatz Laufzeit Raten/Jahr     	 Annuität  Gesamtrückzahlung

 100000.00      7.25      30    	12     		   682.18      245583.46
 100000.00      7.25      25    	12     		   722.81      216842.06
 100000.00      7.25      20    	12     		   790.38      189690.24
 100000.00      7.25      15    	12     		   912.86      164315.32
 100000.00      7.25      10    	12     		  1174.01      140881.25

 100000.00      6.50      30    	12     		   632.07      227544.49
 100000.00      6.50      25    	12     		   675.21      202562.15
 100000.00      6.50      20    	12     		   745.57      178937.55
 100000.00      6.50      15    	12     		   871.11      156799.33
 100000.00      6.50      10    	12     		  1135.48      136257.57

 540000.00      7.75      30    	12     		  3868.63     1392705.41
 540000.00      7.75      25    	12     		  4078.78     1223632.59
 540000.00      7.75      20    	12     		  4433.12     1063949.34
 540000.00      7.75      15    	12     		  5082.89      914920.03
 540000.00      7.75      10    	12     		  6480.57      777668.89

8.11.1 Annuität Lösung

 
#! /bin/ksh
# -------------------------------------------------------------
# Erzeugt      : 12.01.97
# Autor        :   D. Hahn
# Beschreibung :  Berechnet Annuität
# -------------------------------------------------------------
# Modif.Log    :
#:
# -------------------------------------------------------------
# Mainscript  awk_annu
# -------------------------------------------------------------
awk '
BEGIN { print "Annuitätsberechnung"  }
      { printf "Kapital    : "
        getline k
        if (cnt % 25 == 0)
         {     printf "\f  Kapital   Zinssatz Laufzeit   Raten/Jahr  " \
          "             Annuität   Gesamtrückzahlung \n\n" > "awk_annu_list"
               cnt = 1
         }
        printf "Laufzeit   : "
        getline l
        printf "Zinssatz   : "
        getline z
        printf "Raten/Jahr : "
        getline r

        printf "\nKapital %8.2f   \n",k
        printf "Zinssatz %7.2f   \nRaten/Jahr %2d \n",z,r
        q= 1 + z / (100  * r)        # aufz_faktor
        for ( j = 1; j < 6; j++)
        {
		nz = l * r                   # Anzahl der gesamtzahlungen
		qnz = q ^ nz
		annu = k * qnz * (q - 1)  / (qnz -1)
		printf "Laufzeit   %3d  Annuität : %8.2f   ",l , annu
		ges = annu * nz
		printf "Gesamtrückzahlung %9.2f\n", ges
		printf " %7.2f    %6.2f     %3d    %2d    %8.2f  %12.2f\n",
 			k, z, l,r, annu, ges  > "awk_annu_list"
		cnt++
      		l -=5
        }
        printf "\n"  > "awk_annu_list"      # In der Shell wäre jetzt alles weg
                                            # hier wird jedoch angehängt
        cnt++                               # Zeilenzähler erhöhen
      }
'
cat awk_annu_list