Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Real-World Scenarios
Real-World Scenarios | Intermediate | COBOL

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.