PROGRAM BAUSPARKREDIT(INPUT,OUTPUT); VAR ANFANG,GETILGT: BOOLEAN; DATUM,MONAT,QUARTAL,JAHR: INTEGER; DARLEHEN,SCHULD,ZINSEN,ZAHLUNG,TILGUNG,RATE: REAL; RSUMME,ZSUMME,TSUMME: REAL; PROCEDURE TRENNUNGSSTRICH; VAR I: INTEGER; BEGIN FOR I:=1 TO 60 DO WRITE("-"); WRITELN END; PROCEDURE KOPFZEILE; BEGIN WRITELN("BILANZ", JAHR:5, " ":3, "RESTSCHULD", " ":3, "ZAHLUNGEN", " ":6, "ZINSEN", " ":5, "TILGUNG"); TRENNUNGSSTRICH; RSUMME := 0; ZSUMME := 0; TSUMME := 0 END (* KOPFZEILE *); PROCEDURE QUARTALSBERICHT; BEGIN WRITELN(QUARTAL:2, ". QUARTAL ", SCHULD:12:2, ZAHLUNG:12:2, ZINSEN:12:2, TILGUNG:12:2); ANFANG := FALSE; RSUMME := RSUMME + ZAHLUNG; ZSUMME := ZSUMME + ZINSEN; TSUMME := TSUMME + TILGUNG END (* QUARTALSBERICHT *); PROCEDURE JAHRESABRECHNUNG; BEGIN TRENNUNGSSTRICH; WRITELN("ABRECHNUNG: ", SCHULD-ZAHLUNG:12:2, RSUMME:12:2, ZSUMME:12:2, TSUMME:12:2); WRITELN; WRITELN; WRITELN END (* JAHRESABRECHNUNG *); BEGIN WRITELN; WRITELN("B A U S P A R K R E D I T"); WRITELN; WRITE("HOEHE DES DARLEHENS LAUT VERTRAG S"); READ(DARLEHEN); WRITE("BIS TILGUNGSBEGINN ANGEWACHSEN AUF S"); READ(SCHULD); WRITE("DATUM DER 1. TILGUNGSRATE (JJMMTT)"); READ(DATUM); WRITELN; JAHR := DATUM DIV 10000 + 1900; MONAT := (DATUM MOD 10000) DIV 100; QUARTAL := (MONAT + 2) DIV 3; RATE := 7*TRUNC(DARLEHEN/1000 + 0.999); WRITELN("MONATLICHE TILGUNGSRATE S", RATE:9:2); WRITELN; ANFANG := TRUE; GETILGT := FALSE; ZAHLUNG := (3*QUARTAL - MONAT + 1)*RATE; ZINSEN := 0; TILGUNG := ZAHLUNG; REPEAT (* JAHR *) KOPFZEILE; REPEAT (* QUARTAL *) IF NOT ANFANG THEN BEGIN QUARTAL := QUARTAL + 1; ZINSEN := TRUNC(1.5*(SCHULD-ZAHLUNG))/100; SCHULD := SCHULD - ZAHLUNG + ZINSEN; ZAHLUNG := 3*RATE; IF SCHULD<=ZAHLUNG THEN BEGIN ZAHLUNG := SCHULD; GETILGT := TRUE END; TILGUNG := ZAHLUNG - ZINSEN END; QUARTALSBERICHT UNTIL (QUARTAL=4) OR GETILGT; JAHRESABRECHNUNG; JAHR := JAHR + 1; QUARTAL := 0; IF JAHR<1979 THEN SCHULD := SCHULD + 30 ELSE SCHULD := SCHULD + 40 UNTIL GETILGT END.