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