home *** CD-ROM | disk | FTP | other *** search
- {Donated by Warren Smith, Feb 1982}
-
- Program PAYMENTS ;
-
- Var AnnRate, Years, Amount, Monthly : real ;
- Dollars, Cents_tens, Cents_ones : integer ;
- {--------------------------------------------
- I modified Screen Clear since the original was an
- external so you'll have to change this (maybe).
- ----Charlie }
- Procedure ScreenClr;
-
- BEGIN
- WRITELN(CHR(26));
- END;
-
- Function Pmt (Amount, AnnRate, Years : real) : real ;
-
- Var
- MonRate, Months : real ;
-
- Function XTOY (X, Y : real) : real ;
-
- Begin { XTOY }
- If (Y = 0.0) then
- XTOY := 1.0
- else
- If (Y = 1.0) then
- XTOY := X
- else
- If (Y < 0.0) then
- XTOY := 1.0 / exp(-Y * ln(X))
- else
- XTOY := exp(Y * ln(X))
- end; { XTOY }
-
- Begin { Pmt }
- MonRate := AnnRate / 100.0 / 12.0 ;
- Months := Years * 12.0 ;
- Pmt := Amount * MonRate / (1.0 - XTOY(1.0+MonRate,-Months)) ;
- End; { Pmt }
-
- Begin { Main }
-
- ScreenClr; ;
- Writeln ;
- Writeln ;
- Writeln('Input the following:') ;
- Writeln ;
- Writeln(' Annual Years Amount') ;
- Writeln('Percentage before Financed') ;
- Writeln(' Rate Paid') ;
- Writeln ;
- Readln (AnnRate, Years, Amount) ;
- Monthly := Pmt(Amount, AnnRate, Years) ;
- Writeln ;
- Writeln ;
- Dollars := Trunc(Monthly) ;
- Cents_tens := Trunc((Monthly-Dollars)*10.0) ;
- Cents_ones := Trunc((Monthly-Dollars)*100.0) mod 10 ;
- Writeln ('Monthly payments : $', Dollars:1,'.',Cents_tens:1,Cents_ones:1) ;
- Writeln ;
- Writeln ;
- Writeln ;
- Writeln ;
- Writeln
-
- End. { dummy }
-