Skip to main content

Problem:

When sorting, the table is sorted by uppercase first, then lowercase:

ALPHA

BETA

Alpha

Beta

and to attain the following output:

Alpha

ALPHA

Beta

BETA

                                                      

Resolution:

         object-computer.  pc program collating sequence is alpha-1.

        special-names.

           alphabet alpha-1

           "A" also "a" "B" also "b" "C" also "c" "D" also "d"

           "E" also "e" "F" also "f" "G" also "g" "H" also "h"

           "I" also "i" "J" also "j" "K" also "k" "L" also "l"

           "M" also "m" "N" also "n" "O" also "o" "P" also "p"

           "Q" also "q" "R" also "r" "S" also "s" "T" also "t"

           "U" also "u" "V" also "v" "W" also "w" "X" also "x"

           "Y" also "y" "Z" also "z".

        working-storage section.

        01 group-item.

           05 tabl occurs 10 times.

              10 elem-item1        pic x(10).

          

        01 counter                 pic 9(2).

        procedure division.

          perform fill-table

          sort tabl ascending collating sequence is alpha-1.

          perform print-table

          stop run.

        fill-table section.

          move "james"     to tabl(1)

          move "paul"      to tabl(2)

          move "jenny"     to tabl(3)

          move "anderson"  to tabl(4)

          move "ANDERSON"  to tabl(5)

          move "PAUL"      to tabl(6)

          move "JENNY"     to tabl(7)

          move "SMITH"     to tabl(8)

          move "JAMES"     to tabl(9)

          move "smith"     to tabl(10)

        .

        print-table section.

        

          perform varying counter from 1 by 1 until counter >= 11

            display tabl(counter)

          end-perform

        .

Old KB# 3802