File: BSPS.PS of Tape: Various/Decus/decus-3
(Source file text) 

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.