Tax Bracket Calculator
Problem Description
Calculate progressive tax: 0-10000: 0%, 10001-30000: 10%, 30001-50000: 20%, Above 50000: 30%.
Expected Output
Tax amount for given income
Hints
Apply each bracket rate to the portion of income in that bracket.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. TAXBRACK.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-INCOME PIC 9(9)V99.
01 WS-TAX PIC 9(9)V99 VALUE 0.
01 WS-REMAINING PIC 9(9)V99.
01 WS-DISP PIC Z,ZZ,ZZ,ZZ9.99.
PROCEDURE DIVISION.
DISPLAY "ENTER ANNUAL INCOME: ".
ACCEPT WS-INCOME.
MOVE WS-INCOME TO WS-REMAINING.
MOVE 0 TO WS-TAX.
* Bracket 1: 0-10000 at 0%
IF WS-REMAINING > 10000
SUBTRACT 10000 FROM WS-REMAINING
ELSE
MOVE 0 TO WS-REMAINING
END-IF.
* Bracket 2: 10001-30000 at 10%
IF WS-REMAINING > 0
IF WS-REMAINING > 20000
ADD 2000 TO WS-TAX
SUBTRACT 20000 FROM WS-REMAINING
ELSE
COMPUTE WS-TAX = WS-TAX + (WS-REMAINING * 0.10)
MOVE 0 TO WS-REMAINING
END-IF
END-IF.
* Bracket 3: 30001-50000 at 20%
IF WS-REMAINING > 0
IF WS-REMAINING > 20000
ADD 4000 TO WS-TAX
SUBTRACT 20000 FROM WS-REMAINING
ELSE
COMPUTE WS-TAX = WS-TAX + (WS-REMAINING * 0.20)
MOVE 0 TO WS-REMAINING
END-IF
END-IF.
* Bracket 4: Above 50000 at 30%
IF WS-REMAINING > 0
COMPUTE WS-TAX = WS-TAX + (WS-REMAINING * 0.30)
END-IF.
DISPLAY "=== TAX CALCULATION ===".
MOVE WS-INCOME TO WS-DISP.
DISPLAY "INCOME: " WS-DISP.
MOVE WS-TAX TO WS-DISP.
DISPLAY "TAX: " WS-DISP.
STOP RUN.
Explanation:
Progressive tax applies different rates to income portions in each bracket.