Loan EMI Calculator
Problem Description
Calculate Equated Monthly Installment (EMI) for a loan.
Expected Output
EMI amount with amortization schedule
Hints
EMI = P * r * (1+r)^n / ((1+r)^n - 1)
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. EMICALC.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-PRINCIPAL PIC 9(9)V99.
01 WS-ANNUAL-RATE PIC 9(2)V99.
01 WS-MONTHLY-RATE PIC 9V9(6).
01 WS-MONTHS PIC 9(3).
01 WS-EMI PIC 9(7)V99.
01 WS-TOTAL-PAY PIC 9(9)V99.
01 WS-TOTAL-INT PIC 9(9)V99.
01 WS-TEMP1 PIC 9(6)V9(6).
01 WS-TEMP2 PIC 9(6)V9(6).
01 WS-DISP PIC Z,ZZ,ZZ,ZZ9.99.
PROCEDURE DIVISION.
DISPLAY "=== LOAN EMI CALCULATOR ===".
DISPLAY "ENTER LOAN AMOUNT: ".
ACCEPT WS-PRINCIPAL.
DISPLAY "ENTER ANNUAL INTEREST RATE (%): ".
ACCEPT WS-ANNUAL-RATE.
DISPLAY "ENTER LOAN TENURE (MONTHS): ".
ACCEPT WS-MONTHS.
* Monthly interest rate
COMPUTE WS-MONTHLY-RATE = WS-ANNUAL-RATE / 12 / 100.
* EMI Formula: P * r * (1+r)^n / ((1+r)^n - 1)
COMPUTE WS-TEMP1 = (1 + WS-MONTHLY-RATE) ** WS-MONTHS.
COMPUTE WS-EMI = WS-PRINCIPAL * WS-MONTHLY-RATE * WS-TEMP1
/ (WS-TEMP1 - 1).
* Total payment and interest
COMPUTE WS-TOTAL-PAY = WS-EMI * WS-MONTHS.
COMPUTE WS-TOTAL-INT = WS-TOTAL-PAY - WS-PRINCIPAL.
DISPLAY " ".
DISPLAY "=== LOAN SUMMARY ===".
MOVE WS-PRINCIPAL TO WS-DISP.
DISPLAY "LOAN AMOUNT: " WS-DISP.
DISPLAY "INTEREST RATE: " WS-ANNUAL-RATE "% p.a.".
DISPLAY "TENURE: " WS-MONTHS " months".
DISPLAY " ".
MOVE WS-EMI TO WS-DISP.
DISPLAY "MONTHLY EMI: " WS-DISP.
MOVE WS-TOTAL-PAY TO WS-DISP.
DISPLAY "TOTAL PAYMENT: " WS-DISP.
MOVE WS-TOTAL-INT TO WS-DISP.
DISPLAY "TOTAL INTEREST: " WS-DISP.
STOP RUN.
Explanation:
EMI calculation using standard formula with exponentiation.