The PLUS operation and sign editing capabilities in COBOL represent comprehensive arithmetic processing and sophisticated sign formatting functionality within enterprise programming environments, providing advanced mathematical computation mechanisms for precise numeric calculations, enhanced sign display features for professional formatting requirements, and intelligent positive value handling capabilities that enable accurate arithmetic operations, optimal sign presentation workflows, and systematic numeric display control while maintaining calculation accuracy, ensuring proper sign representation, and enabling flexible formatting architectures across business applications requiring exact arithmetic processing, professional numeric display, and reliable sign handling throughout sophisticated financial calculations and formatted reporting scenarios.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115*> PLUS in arithmetic expressions and calculations WORKING-STORAGE SECTION. 01 WS-ARITHMETIC-DATA. 05 WS-NUMBER-A PIC 9(5)V99 VALUE 100.50. 05 WS-NUMBER-B PIC 9(5)V99 VALUE 250.75. 05 WS-NUMBER-C PIC 9(5)V99 VALUE 75.25. 05 WS-RESULT PIC 9(6)V99 VALUE 0. 05 WS-TOTAL PIC 9(8)V99 VALUE 0. 01 WS-FINANCIAL-CALCULATIONS. 05 WS-BASE-SALARY PIC 9(6)V99 VALUE 50000.00. 05 WS-BONUS-AMOUNT PIC 9(5)V99 VALUE 5000.00. 05 WS-COMMISSION PIC 9(5)V99 VALUE 2500.00. 05 WS-OVERTIME-PAY PIC 9(4)V99 VALUE 1200.00. 05 WS-TOTAL-COMPENSATION PIC 9(7)V99 VALUE 0. 01 WS-INVENTORY-CALCULATIONS. 05 WS-OPENING-STOCK PIC 9(6) VALUE 1000. 05 WS-PURCHASES PIC 9(6) VALUE 500. 05 WS-RETURNS PIC 9(4) VALUE 25. 05 WS-ADJUSTMENTS PIC S9(4) VALUE +10. 05 WS-CURRENT-STOCK PIC 9(6) VALUE 0. PROCEDURE DIVISION. DEMONSTRATE-PLUS-ARITHMETIC. DISPLAY "=== PLUS ARITHMETIC OPERATIONS ===" *> Basic addition using PLUS COMPUTE WS-RESULT = WS-NUMBER-A + WS-NUMBER-B DISPLAY "Basic addition: " WS-NUMBER-A " + " WS-NUMBER-B " = " WS-RESULT *> Multiple addition operations COMPUTE WS-TOTAL = WS-NUMBER-A + WS-NUMBER-B + WS-NUMBER-C DISPLAY "Multiple addition: " WS-NUMBER-A " + " WS-NUMBER-B " + " WS-NUMBER-C " = " WS-TOTAL *> Complex arithmetic with PLUS COMPUTE WS-TOTAL-COMPENSATION = WS-BASE-SALARY + WS-BONUS-AMOUNT + WS-COMMISSION + WS-OVERTIME-PAY DISPLAY "Total compensation: $" WS-TOTAL-COMPENSATION *> Inventory calculation with positive adjustments COMPUTE WS-CURRENT-STOCK = WS-OPENING-STOCK + WS-PURCHASES - WS-RETURNS + WS-ADJUSTMENTS DISPLAY "Current stock: " WS-CURRENT-STOCK " units" *> Percentage calculations with PLUS COMPUTE WS-BONUS-PERCENTAGE = (WS-BONUS-AMOUNT + WS-COMMISSION) / WS-BASE-SALARY * 100 DISPLAY "Bonus percentage: " WS-BONUS-PERCENTAGE "%" *> Advanced PLUS operations with error handling CALCULATE-FINANCIAL-TOTALS. *> Initialize totals MOVE 0 TO WS-ANNUAL-TOTAL MOVE 0 TO WS-MONTHLY-AVERAGE *> Monthly totals with PLUS operations PERFORM VARYING MONTH-INDEX FROM 1 BY 1 UNTIL MONTH-INDEX > 12 COMPUTE MONTHLY-SALES = BASE-SALES(MONTH-INDEX) + BONUS-SALES(MONTH-INDEX) + COMMISSION-SALES(MONTH-INDEX) ADD MONTHLY-SALES TO WS-ANNUAL-TOTAL DISPLAY "Month " MONTH-INDEX ": $" MONTHLY-SALES END-PERFORM *> Calculate average using PLUS in denominator COMPUTE WS-MONTHLY-AVERAGE = WS-ANNUAL-TOTAL / 12 DISPLAY "Annual total: $" WS-ANNUAL-TOTAL DISPLAY "Monthly average: $" WS-MONTHLY-AVERAGE *> PLUS with different data types and precision MIXED-PRECISION-CALCULATIONS. 01 WS-PRECISE-CALCULATIONS. 05 WS-AMOUNT-1 PIC 9(8)V9999. *> High precision 05 WS-AMOUNT-2 PIC 9(6)V99. *> Standard precision 05 WS-AMOUNT-3 PIC 9(4)V9. *> Low precision 05 WS-PRECISE-TOTAL PIC 9(10)V9999. *> Result precision MOVE 12345.6789 TO WS-AMOUNT-1 MOVE 6789.12 TO WS-AMOUNT-2 MOVE 456.7 TO WS-AMOUNT-3 *> PLUS operations maintain precision COMPUTE WS-PRECISE-TOTAL = WS-AMOUNT-1 + WS-AMOUNT-2 + WS-AMOUNT-3 DISPLAY "Precise calculation: " WS-PRECISE-TOTAL *> Verify precision handling IF WS-PRECISE-TOTAL > 19591.4989 DISPLAY "✅ Precision maintained in PLUS operation" ELSE DISPLAY "❌ Precision lost in calculation" END-IF *> PLUS in conditional expressions CONDITIONAL-PLUS-OPERATIONS. 01 WS-CONDITIONAL-DATA. 05 WS-SALES-TARGET PIC 9(6) VALUE 100000. 05 WS-ACTUAL-SALES PIC 9(6) VALUE 87500. 05 WS-BONUS-SALES PIC 9(5) VALUE 15000. 05 WS-SPECIAL-BONUS PIC 9(4) VALUE 2500. *> Conditional addition based on performance IF (WS-ACTUAL-SALES + WS-BONUS-SALES) >= WS-SALES-TARGET COMPUTE WS-TOTAL-ACHIEVEMENT = WS-ACTUAL-SALES + WS-BONUS-SALES + WS-SPECIAL-BONUS DISPLAY "Target achieved! Total: " WS-TOTAL-ACHIEVEMENT ELSE COMPUTE WS-TOTAL-ACHIEVEMENT = WS-ACTUAL-SALES + WS-BONUS-SALES DISPLAY "Target not met. Total: " WS-TOTAL-ACHIEVEMENT END-IF
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160*> PLUS sign editing in PICTURE clauses 01 WS-SIGN-EDITING-EXAMPLES. *> Fixed sign editing 05 WS-FIXED-PLUS PIC +999.99. *> Fixed plus sign 05 WS-FIXED-MINUS PIC -999.99. *> Fixed minus sign 05 WS-PLUS-MINUS PIC +999.99. *> Plus or minus display *> Floating sign editing 05 WS-FLOATING-PLUS PIC +++9.99. *> Floating plus sign 05 WS-FLOATING-MINUS PIC ---9.99. *> Floating minus sign 05 WS-MULTI-FLOAT PIC +++++9.99. *> Multiple float positions *> Complex sign formatting 05 WS-CURRENCY-PLUS PIC +$999.99. *> Plus with currency 05 WS-COMMA-PLUS PIC +9,999.99. *> Plus with comma editing 05 WS-SUPPRESS-PLUS PIC +Z,ZZ9.99. *> Plus with suppression 01 WS-FINANCIAL-DISPLAYS. 05 WS-PROFIT-LOSS PIC +ZZ,ZZ9.99. *> P&L display 05 WS-VARIANCE-AMOUNT PIC +Z,ZZ9.99-. *> Variance with signs 05 WS-ACCOUNT-BALANCE PIC +$ZZ,ZZ9.99. *> Account balance 05 WS-PERCENTAGE-CHANGE PIC +ZZ9.99%. *> Percentage change 01 WS-STATISTICAL-DISPLAYS. 05 WS-TEMPERATURE PIC +999. *> Temperature reading 05 WS-ELEVATION PIC +9999. *> Elevation above/below sea 05 WS-PERFORMANCE-DELTA PIC +ZZ9.9%. *> Performance change 05 WS-GROWTH-RATE PIC +Z9.999%. *> Growth rate display PROCEDURE DIVISION. DEMONSTRATE-PLUS-SIGN-EDITING. DISPLAY "=== PLUS SIGN EDITING DEMONSTRATION ===" *> Fixed sign editing examples MOVE +123.45 TO WS-FIXED-PLUS DISPLAY "Fixed plus positive: " WS-FIXED-PLUS MOVE -123.45 TO WS-FIXED-PLUS DISPLAY "Fixed plus negative: " WS-FIXED-PLUS *> Floating sign editing examples MOVE +12.34 TO WS-FLOATING-PLUS DISPLAY "Floating plus small: " WS-FLOATING-PLUS MOVE +1234.56 TO WS-FLOATING-PLUS DISPLAY "Floating plus large: " WS-FLOATING-PLUS MOVE -12.34 TO WS-FLOATING-PLUS DISPLAY "Floating plus negative: " WS-FLOATING-PLUS *> Complex formatting examples MOVE +5678.90 TO WS-CURRENCY-PLUS DISPLAY "Currency with plus: " WS-CURRENCY-PLUS MOVE +12345.67 TO WS-COMMA-PLUS DISPLAY "Comma with plus: " WS-COMMA-PLUS MOVE +45.00 TO WS-SUPPRESS-PLUS DISPLAY "Suppression with plus: " WS-SUPPRESS-PLUS DEMONSTRATE-FINANCIAL-SIGN-EDITING. DISPLAY " " DISPLAY "=== FINANCIAL SIGN EDITING ===" *> Profit and loss examples MOVE +125000.50 TO WS-PROFIT-LOSS DISPLAY "Profit: " WS-PROFIT-LOSS MOVE -75000.25 TO WS-PROFIT-LOSS DISPLAY "Loss: " WS-PROFIT-LOSS *> Variance analysis MOVE +2500.75 TO WS-VARIANCE-AMOUNT DISPLAY "Positive variance: " WS-VARIANCE-AMOUNT MOVE -1800.50 TO WS-VARIANCE-AMOUNT DISPLAY "Negative variance: " WS-VARIANCE-AMOUNT *> Account balances MOVE +45678.90 TO WS-ACCOUNT-BALANCE DISPLAY "Credit balance: " WS-ACCOUNT-BALANCE MOVE -1234.56 TO WS-ACCOUNT-BALANCE DISPLAY "Debit balance: " WS-ACCOUNT-BALANCE *> Percentage changes MOVE +15.75 TO WS-PERCENTAGE-CHANGE DISPLAY "Positive change: " WS-PERCENTAGE-CHANGE MOVE -8.25 TO WS-PERCENTAGE-CHANGE DISPLAY "Negative change: " WS-PERCENTAGE-CHANGE DEMONSTRATE-STATISTICAL-FORMATTING. DISPLAY " " DISPLAY "=== STATISTICAL SIGN FORMATTING ===" *> Temperature readings MOVE +72 TO WS-TEMPERATURE DISPLAY "Temperature above zero: " WS-TEMPERATURE "°F" MOVE -15 TO WS-TEMPERATURE DISPLAY "Temperature below zero: " WS-TEMPERATURE "°F" *> Elevation readings MOVE +5280 TO WS-ELEVATION DISPLAY "Above sea level: " WS-ELEVATION " feet" MOVE -282 TO WS-ELEVATION DISPLAY "Below sea level: " WS-ELEVATION " feet" *> Performance deltas MOVE +12.5 TO WS-PERFORMANCE-DELTA DISPLAY "Performance improvement: " WS-PERFORMANCE-DELTA MOVE -5.7 TO WS-PERFORMANCE-DELTA DISPLAY "Performance decline: " WS-PERFORMANCE-DELTA *> Growth rates MOVE +8.750 TO WS-GROWTH-RATE DISPLAY "Positive growth: " WS-GROWTH-RATE MOVE -2.125 TO WS-GROWTH-RATE DISPLAY "Negative growth: " WS-GROWTH-RATE *> Zero handling with PLUS sign editing DEMONSTRATE-ZERO-HANDLING. DISPLAY " " DISPLAY "=== ZERO VALUE HANDLING ===" *> How PLUS editing handles zero values MOVE 0 TO WS-FIXED-PLUS DISPLAY "Zero with fixed plus: '" WS-FIXED-PLUS "'" MOVE 0 TO WS-FLOATING-PLUS DISPLAY "Zero with floating plus: '" WS-FLOATING-PLUS "'" MOVE 0 TO WS-PROFIT-LOSS DISPLAY "Zero profit/loss: '" WS-PROFIT-LOSS "'" MOVE 0 TO WS-PERCENTAGE-CHANGE DISPLAY "Zero percentage: '" WS-PERCENTAGE-CHANGE "'" *> Boundary value testing with PLUS TEST-BOUNDARY-VALUES. DISPLAY " " DISPLAY "=== BOUNDARY VALUE TESTING ===" *> Maximum positive values MOVE +999.99 TO WS-FIXED-PLUS DISPLAY "Maximum positive: " WS-FIXED-PLUS *> Maximum negative values MOVE -999.99 TO WS-FIXED-PLUS DISPLAY "Maximum negative: " WS-FIXED-PLUS *> Minimum values MOVE +0.01 TO WS-FIXED-PLUS DISPLAY "Minimum positive: " WS-FIXED-PLUS MOVE -0.01 TO WS-FIXED-PLUS
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314IDENTIFICATION DIVISION. PROGRAM-ID. PLUS-DEMO. DATA DIVISION. WORKING-STORAGE SECTION. *> Comprehensive PLUS operation demonstration 01 WS-ARITHMETIC-CONTROL. 05 WS-CALCULATION-COUNT PIC 9(4) VALUE 0. 05 WS-ERROR-COUNT PIC 9(3) VALUE 0. 05 WS-SUCCESS-COUNT PIC 9(4) VALUE 0. 05 WS-TOTAL-OPERATIONS PIC 9(4) VALUE 0. *> Financial calculation system 01 WS-FINANCIAL-SYSTEM. 05 WS-REVENUE-STREAMS OCCURS 5 TIMES. 10 WS-STREAM-NAME PIC X(20). 10 WS-STREAM-AMOUNT PIC 9(8)V99. 10 WS-STREAM-GROWTH PIC S9(5)V99. 05 WS-EXPENSE-CATEGORIES OCCURS 8 TIMES. 10 WS-EXPENSE-NAME PIC X(20). 10 WS-EXPENSE-AMOUNT PIC 9(7)V99. 10 WS-EXPENSE-CHANGE PIC S9(6)V99. *> Display formatting for financial data 01 WS-FINANCIAL-DISPLAYS. 05 WS-REVENUE-DISPLAY PIC +$Z,ZZZ,ZZ9.99. 05 WS-EXPENSE-DISPLAY PIC +$Z,ZZZ,ZZ9.99. 05 WS-PROFIT-DISPLAY PIC +$Z,ZZZ,ZZ9.99. 05 WS-GROWTH-DISPLAY PIC +ZZZ.99%. 05 WS-VARIANCE-DISPLAY PIC +$ZZ,ZZ9.99. *> Statistical analysis with PLUS operations 01 WS-STATISTICAL-DATA. 05 WS-QUARTERLY-DATA OCCURS 4 TIMES. 10 WS-QUARTER-SALES PIC 9(8)V99. 10 WS-QUARTER-COSTS PIC 9(7)V99. 10 WS-QUARTER-PROFIT PIC S9(8)V99. 05 WS-ANNUAL-TOTALS. 10 WS-TOTAL-SALES PIC 9(10)V99. 10 WS-TOTAL-COSTS PIC 9(9)V99. 10 WS-TOTAL-PROFIT PIC S9(10)V99. 05 WS-GROWTH-ANALYSIS. 10 WS-SALES-GROWTH PIC S9(5)V99. 10 WS-COST-GROWTH PIC S9(5)V99. 10 WS-PROFIT-GROWTH PIC S9(6)V99. *> Performance measurement system 01 WS-PERFORMANCE-METRICS. 05 WS-EMPLOYEE-PERFORMANCE OCCURS 20 TIMES. 10 WS-EMP-ID PIC X(8). 10 WS-BASE-SCORE PIC 9(3). 10 WS-BONUS-POINTS PIC 9(3). 10 WS-ADJUSTMENT PIC S9(3). 10 WS-FINAL-SCORE PIC 9(4). 05 WS-TEAM-METRICS. 10 WS-TEAM-TOTAL PIC 9(6). 10 WS-TEAM-AVERAGE PIC 9(4)V9. 10 WS-TEAM-VARIANCE PIC S9(4)V9. *> Performance display formatting 01 WS-PERFORMANCE-DISPLAYS. 05 WS-SCORE-DISPLAY PIC +ZZ9. 05 WS-AVERAGE-DISPLAY PIC +ZZ9.9. 05 WS-VARIANCE-DISPLAY PIC +ZZ9.9. 05 WS-IMPROVEMENT-DISP PIC +Z9.9%. PROCEDURE DIVISION. MAIN-PLUS-DEMO. DISPLAY "=== COMPREHENSIVE PLUS OPERATIONS DEMO ===" PERFORM INITIALIZE-DEMO-SYSTEM PERFORM LOAD-FINANCIAL-DATA PERFORM CALCULATE-FINANCIAL-TOTALS PERFORM ANALYZE-QUARTERLY-PERFORMANCE PERFORM CALCULATE-EMPLOYEE-METRICS PERFORM GENERATE-FORMATTED-REPORTS PERFORM DISPLAY-SYSTEM-SUMMARY DISPLAY "=== PLUS DEMO COMPLETE ===" STOP RUN. *> ========================================== *> SYSTEM INITIALIZATION *> ========================================== INITIALIZE-DEMO-SYSTEM. DISPLAY "Initializing PLUS operations demo system..." MOVE 0 TO WS-CALCULATION-COUNT MOVE 0 TO WS-ERROR-COUNT MOVE 0 TO WS-SUCCESS-COUNT MOVE 0 TO WS-TOTAL-OPERATIONS DISPLAY "✅ System initialized". LOAD-FINANCIAL-DATA. DISPLAY "Loading financial data..." *> Load revenue streams MOVE "PRODUCT SALES" TO WS-STREAM-NAME(1) MOVE 1250000.00 TO WS-STREAM-AMOUNT(1) MOVE +125000.50 TO WS-STREAM-GROWTH(1) MOVE "SERVICE REVENUE" TO WS-STREAM-NAME(2) MOVE 875000.00 TO WS-STREAM-AMOUNT(2) MOVE +67500.25 TO WS-STREAM-GROWTH(2) MOVE "LICENSING FEES" TO WS-STREAM-NAME(3) MOVE 425000.00 TO WS-STREAM-AMOUNT(3) MOVE +32500.75 TO WS-STREAM-GROWTH(3) *> Load expense categories MOVE "SALARIES" TO WS-EXPENSE-NAME(1) MOVE 800000.00 TO WS-EXPENSE-AMOUNT(1) MOVE +45000.00 TO WS-EXPENSE-CHANGE(1) MOVE "MARKETING" TO WS-EXPENSE-NAME(2) MOVE 350000.00 TO WS-EXPENSE-AMOUNT(2) MOVE +25000.00 TO WS-EXPENSE-CHANGE(2) MOVE "OPERATIONS" TO WS-EXPENSE-NAME(3) MOVE 275000.00 TO WS-EXPENSE-AMOUNT(3) MOVE -15000.00 TO WS-EXPENSE-CHANGE(3) DISPLAY "✅ Financial data loaded". *> ========================================== *> FINANCIAL CALCULATIONS WITH PLUS *> ========================================== CALCULATE-FINANCIAL-TOTALS. DISPLAY "Calculating financial totals using PLUS operations..." MOVE 0 TO WS-TOTAL-REVENUE MOVE 0 TO WS-TOTAL-EXPENSES MOVE 0 TO WS-TOTAL-GROWTH *> Calculate total revenue using PLUS PERFORM VARYING STREAM-INDEX FROM 1 BY 1 UNTIL STREAM-INDEX > 3 ADD WS-STREAM-AMOUNT(STREAM-INDEX) TO WS-TOTAL-REVENUE ADD WS-STREAM-GROWTH(STREAM-INDEX) TO WS-TOTAL-GROWTH ADD 1 TO WS-CALCULATION-COUNT END-PERFORM *> Calculate total expenses using PLUS PERFORM VARYING EXPENSE-INDEX FROM 1 BY 1 UNTIL EXPENSE-INDEX > 3 ADD WS-EXPENSE-AMOUNT(EXPENSE-INDEX) TO WS-TOTAL-EXPENSES ADD 1 TO WS-CALCULATION-COUNT END-PERFORM *> Calculate net profit using PLUS (revenue PLUS negative expenses) COMPUTE WS-NET-PROFIT = WS-TOTAL-REVENUE - WS-TOTAL-EXPENSES ADD 1 TO WS-CALCULATION-COUNT *> Display results with PLUS sign editing MOVE WS-TOTAL-REVENUE TO WS-REVENUE-DISPLAY MOVE WS-TOTAL-EXPENSES TO WS-EXPENSE-DISPLAY MOVE WS-NET-PROFIT TO WS-PROFIT-DISPLAY COMPUTE WS-GROWTH-PERCENTAGE = (WS-TOTAL-GROWTH / WS-TOTAL-REVENUE) * 100 MOVE WS-GROWTH-PERCENTAGE TO WS-GROWTH-DISPLAY DISPLAY "Financial calculations complete:" DISPLAY " Total Revenue: " WS-REVENUE-DISPLAY DISPLAY " Total Expenses: " WS-EXPENSE-DISPLAY DISPLAY " Net Profit: " WS-PROFIT-DISPLAY DISPLAY " Growth Rate: " WS-GROWTH-DISPLAY. ANALYZE-QUARTERLY-PERFORMANCE. DISPLAY " " DISPLAY "Analyzing quarterly performance..." *> Load quarterly data MOVE 625000.00 TO WS-QUARTER-SALES(1) MOVE 365000.00 TO WS-QUARTER-COSTS(1) MOVE 750000.00 TO WS-QUARTER-SALES(2) MOVE 385000.00 TO WS-QUARTER-COSTS(2) MOVE 850000.00 TO WS-QUARTER-SALES(3) MOVE 425000.00 TO WS-QUARTER-COSTS(3) MOVE 925000.00 TO WS-QUARTER-SALES(4) MOVE 450000.00 TO WS-QUARTER-COSTS(4) *> Calculate quarterly profits using PLUS operations PERFORM VARYING QUARTER-INDEX FROM 1 BY 1 UNTIL QUARTER-INDEX > 4 COMPUTE WS-QUARTER-PROFIT(QUARTER-INDEX) = WS-QUARTER-SALES(QUARTER-INDEX) - WS-QUARTER-COSTS(QUARTER-INDEX) ADD 1 TO WS-CALCULATION-COUNT END-PERFORM *> Calculate annual totals using PLUS MOVE 0 TO WS-TOTAL-SALES MOVE 0 TO WS-TOTAL-COSTS MOVE 0 TO WS-TOTAL-PROFIT PERFORM VARYING QUARTER-INDEX FROM 1 BY 1 UNTIL QUARTER-INDEX > 4 ADD WS-QUARTER-SALES(QUARTER-INDEX) TO WS-TOTAL-SALES ADD WS-QUARTER-COSTS(QUARTER-INDEX) TO WS-TOTAL-COSTS ADD WS-QUARTER-PROFIT(QUARTER-INDEX) TO WS-TOTAL-PROFIT ADD 3 TO WS-CALCULATION-COUNT END-PERFORM *> Calculate growth rates COMPUTE WS-SALES-GROWTH = ((WS-QUARTER-SALES(4) - WS-QUARTER-SALES(1)) / WS-QUARTER-SALES(1)) * 100 COMPUTE WS-PROFIT-GROWTH = ((WS-QUARTER-PROFIT(4) - WS-QUARTER-PROFIT(1)) / WS-QUARTER-PROFIT(1)) * 100 DISPLAY "Quarterly analysis complete:" DISPLAY " Annual Sales: $" WS-TOTAL-SALES DISPLAY " Annual Costs: $" WS-TOTAL-COSTS DISPLAY " Annual Profit: $" WS-TOTAL-PROFIT MOVE WS-SALES-GROWTH TO WS-GROWTH-DISPLAY DISPLAY " Sales Growth: " WS-GROWTH-DISPLAY MOVE WS-PROFIT-GROWTH TO WS-GROWTH-DISPLAY DISPLAY " Profit Growth: " WS-GROWTH-DISPLAY. *> ========================================== *> EMPLOYEE PERFORMANCE WITH PLUS *> ========================================== CALCULATE-EMPLOYEE-METRICS. DISPLAY " " DISPLAY "Calculating employee performance metrics..." *> Load sample employee data PERFORM VARYING EMP-INDEX FROM 1 BY 1 UNTIL EMP-INDEX > 5 STRING "EMP" EMP-INDEX DELIMITED BY SIZE INTO WS-EMP-ID(EMP-INDEX) END-STRING COMPUTE WS-BASE-SCORE(EMP-INDEX) = 75 + (EMP-INDEX * 3) COMPUTE WS-BONUS-POINTS(EMP-INDEX) = 5 + (EMP-INDEX * 2) COMPUTE WS-ADJUSTMENT(EMP-INDEX) = EMP-INDEX - 3 END-PERFORM *> Calculate final scores using PLUS operations MOVE 0 TO WS-TEAM-TOTAL PERFORM VARYING EMP-INDEX FROM 1 BY 1 UNTIL EMP-INDEX > 5 COMPUTE WS-FINAL-SCORE(EMP-INDEX) = WS-BASE-SCORE(EMP-INDEX) + WS-BONUS-POINTS(EMP-INDEX) + WS-ADJUSTMENT(EMP-INDEX) ADD WS-FINAL-SCORE(EMP-INDEX) TO WS-TEAM-TOTAL ADD 1 TO WS-CALCULATION-COUNT END-PERFORM *> Calculate team average COMPUTE WS-TEAM-AVERAGE = WS-TEAM-TOTAL / 5 *> Display individual scores with PLUS sign editing PERFORM VARYING EMP-INDEX FROM 1 BY 1 UNTIL EMP-INDEX > 5 MOVE WS-ADJUSTMENT(EMP-INDEX) TO WS-SCORE-DISPLAY DISPLAY "Employee " WS-EMP-ID(EMP-INDEX) ":" DISPLAY " Base Score: " WS-BASE-SCORE(EMP-INDEX) DISPLAY " Bonus Points: " WS-BONUS-POINTS(EMP-INDEX) DISPLAY " Adjustment: " WS-SCORE-DISPLAY DISPLAY " Final Score: " WS-FINAL-SCORE(EMP-INDEX) END-PERFORM MOVE WS-TEAM-AVERAGE TO WS-AVERAGE-DISPLAY DISPLAY "Team average: " WS-AVERAGE-DISPLAY. GENERATE-FORMATTED-REPORTS. DISPLAY " " DISPLAY "=== FORMATTED FINANCIAL REPORT ===" DISPLAY "Comprehensive financial analysis with PLUS sign editing:" DISPLAY " " *> Revenue analysis with positive/negative indicators DISPLAY "REVENUE ANALYSIS:" PERFORM VARYING STREAM-INDEX FROM 1 BY 1 UNTIL STREAM-INDEX > 3 MOVE WS-STREAM-AMOUNT(STREAM-INDEX) TO WS-REVENUE-DISPLAY MOVE WS-STREAM-GROWTH(STREAM-INDEX) TO WS-VARIANCE-DISPLAY DISPLAY " " WS-STREAM-NAME(STREAM-INDEX) ":" DISPLAY " Amount: " WS-REVENUE-DISPLAY DISPLAY " Growth: " WS-VARIANCE-DISPLAY END-PERFORM DISPLAY " " DISPLAY "EXPENSE ANALYSIS:" PERFORM VARYING EXPENSE-INDEX FROM 1 BY 1 UNTIL EXPENSE-INDEX > 3 MOVE WS-EXPENSE-AMOUNT(EXPENSE-INDEX) TO WS-EXPENSE-DISPLAY MOVE WS-EXPENSE-CHANGE(EXPENSE-INDEX) TO WS-VARIANCE-DISPLAY DISPLAY " " WS-EXPENSE-NAME(EXPENSE-INDEX) ":" DISPLAY " Amount: " WS-EXPENSE-DISPLAY DISPLAY " Change: " WS-VARIANCE-DISPLAY END-PERFORM. DISPLAY-SYSTEM-SUMMARY. DISPLAY " " DISPLAY "📊 PLUS OPERATIONS SUMMARY" DISPLAY "==========================" DISPLAY "System performance metrics:" DISPLAY " Total calculations: " WS-CALCULATION-COUNT DISPLAY " Successful operations: " WS-SUCCESS-COUNT DISPLAY " Error count: " WS-ERROR-COUNT DISPLAY " " DISPLAY "💡 Key PLUS Features Demonstrated:" DISPLAY " • Arithmetic addition operations" DISPLAY " • Sign editing for display formatting" DISPLAY " • Positive/negative value handling" DISPLAY " • Financial calculation processing" DISPLAY " • Statistical analysis with signs" DISPLAY " • Professional report formatting" DISPLAY " • Complex mathematical expressions" DISPLAY " • Boundary value processing"