Code: Select all
loop
NewValue := false
decrement itemCount
loop with index from 1 to itemCount
if (item at index) > (item at (index + 1))
swap (item at index) with (item at (index + 1))
NewValue := true
until NewValue = false
Code: Select all
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
01 TABLE OCCURS 5 TIMES PIC S9(2).
01 TEMP PIC 999 VALUE 000.
01 VAR1 PIC 9 VALUE 0.
01 VAR2 PIC 9 VALUE 1.
PROCEDURE DIVISION.
0000-HOUSEKEEPING.
DISPLAY "ENTER ANY FIVE NUMBERS:"
*
PERFORM UNTIL VAR1 = 5
ADD 1 TO VAR1
ACCEPT TABLE(VAR1)
END-PERFORM.
*
MOVE 1 TO VAR1.
*
PERFORM UNTIL VAR1 > 5
MOVE VAR1 TO VAR2
PERFORM UNTIL VAR2 > 5
IF (TABLE(VAR1) > TABLE(VAR2))
MOVE TABLE(VAR1) TO TEMP
MOVE TABLE(VAR2) TO TABLE(VAR1)
MOVE TEMP TO TABLE(VAR2)
END-IF
ADD 1 TO VAR2 GIVING VAR2
END-PERFORM
*
ADD 1 TO VAR1 GIVING VAR1
END-PERFORM.
*
MOVE 0 TO VAR1.
*
PERFORM UNTIL VAR1 = 5
ADD 1 TO VAR1
DISPLAY VAR1 ":=" TABLE(VAR1)
END-PERFORM.
*
GOBACK.
Output:
Code: Select all
ENTER ANY FIVE NUMBERS:
98
25
54
55
22
AFTER SORTING:
22
25
54
55
98