/* REXX LOAN AMORTIZATION */ SAY " LOAN AMORTIZATION" SAY "ENTER INTEREST RATE: " PULL INTEREST INTEREST = INTEREST / 100 SAY "ENTER AMOUNT OF LOAN: " PULL LOAN_AMOUNT SAY "ENTER NUMBER OF YEARS OF LOAN: " PULL YEARS SAY "ENTER NUMBER OF PAYMENTS PER YEAR: " PULL PAYMENTS_PER_YEAR NO_OF_PAYMENTS = YEARS * PAYMENTS_PER_YEAR I = INTEREST / PAYMENTS_PER_YEAR B = 1 + I R = LOAN_AMOUNT * I / (1 - 1 / B ** NO_OF_PAYMENTS) SAY " " PAYMENT_AMOUNT = TRUNC( ( ( R * 100 ) / 100 ),2) SAY "AMOUNT PER PAYMENT: " PAYMENT_AMOUNT TOTAL_INTEREST = ( ( R * NO_OF_PAYMENTS - LOAN_AMOUNT ) * 100 ) / 100 SAY "TOTAL INTEREST: " TRUNC( TOTAL_INTEREST, 2) SAY " " SAY "PAYMENT NO. INTEREST PRINCIPAL BALANCE" BALANCE = LOAN_AMOUNT PAYMENT_NUMBER = 0 DO PAYMENT_NUMBER = 1 TO NO_OF_PAYMENTS - 1 BY 1 LOAN_INTEREST = BALANCE * I PRINCIPAL = R - LOAN_INTEREST BALANCE = BALANCE - PRINCIPAL LOAN_INTEREST = TRUNC( ( ( LOAN_INTEREST * 100 ) / 100) , 2 ) PRINCIPAL = TRUNC( ( ( PRINCIPAL * 100 ) / 100 ) , 2 ) BALANCE = TRUNC( ( ( BALANCE * 100 ) / 100 ) , 2 ) SAY " " PAYMENT_NUMBER " " LOAN_INTEREST " " , PRINCIPAL " " BALANCE END SAY TRUNC( ( (BALANCE * 1) * 100 / 100 ) ), TRUNC( ( (R - BALANCE * I ) * 100 ) / 100 ) SAY PAYMENT_NUMBER "LAST PAYMENT " , TRUNC( ( ( BALANCE * I + BALANCE ) * 100 ) / 100 )