Advertisement
Guest User

govho_jhopa

a guest
Nov 15th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.42 KB | None | 0 0
  1. Program AnnuityPay;
  2.  
  3. var CreditAmount : real; AnnualProcent : real; TermMonths : integer;
  4. var MonthPayment: real; CurrentDebt : real; i : integer; procent : real; r:real; ProcentAll : real; DebtAll : real; PaymentAll : real;
  5.  
  6. begin
  7.     readln(CreditAmount); readln(AnnualProcent); readln(TermMonths);
  8.  
  9.     writeln('месяц | задолженность | проценты | долг      | общий платеж');
  10.    
  11.    
  12.     //X^Y = exp(ln(X) * Y)
  13.     r := AnnualProcent / 12;
  14.    
  15.     MonthPayment := CreditAmount * r / 100 /
  16.     (1 - (1 / exp(ln(1 + r / 100) * TermMonths)));
  17.    
  18.     CurrentDebt := CreditAmount;
  19.    
  20.     ProcentAll := 0;
  21.     DebtAll := 0;
  22.     PaymentAll := 0;
  23.    
  24.    
  25.     for i := 1 to TermMonths do
  26.     begin
  27.         procent := CurrentDebt / 100 * r;
  28.         ProcentAll += procent;
  29.         DebtAll += MonthPayment - procent;
  30.         PaymentAll += MonthPayment;
  31.        
  32.         writeln(i:5, ' | ', CurrentDebt:13:2, ' | ', procent:8:2, ' | ',
  33.         (MonthPayment - procent):9:2, ' | ', MonthPayment:6:2);
  34.        
  35.         CurrentDebt -= MonthPayment - procent;
  36.     end;    
  37.    
  38.     writeln('ИТОГО |               | ', ProcentAll:8:2, ' | ',
  39.     DebtAll:8:2, ' | ', PaymentAll:8:2);
  40.     writeln('Переплата: ', (PaymentAll - CreditAmount):2:2, ' Процент переплаты: ',
  41.     ((PaymentAll - CreditAmount) / CreditAmount * 100):2:2, '%');
  42.    
  43.    
  44. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement