1 2 3 4 5 6 7 8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
*---------------------------------------------------------------
IDENTIFICATION DIVISION.
*---------------------------------------------------------------
PROGRAM-ID. SORTTABE.
AUTHOR. CARLOS ALBERTO DORNELLES.
*---------------------------------------------------------------
* SISTEMA : SICAD
* PROGRAMA : SORTTABE
* OBJETIVO : CLASSIFICANDO UMA TABELA INTERNA
* ANALISTA : CARLOS ALBERTO DORNELLES
* LINGUAGEM : COBOL
* VERSAO : V.001
* DATA : 15/05/2011
*---------------------------------------------------------------
* MANUTENCAO
*---------------------------------------------------------------
* VRS DD.MM.AA AUTOR DESCRICAO
*
*---------------------------------------------------------------
*---------------------------------------------------------------
DATA DIVISION.
*---------------------------------------------------------------
WORKING-STORAGE SECTION.
01 WS-TABELEMT VALUE ZEROES.
05 WS-ELEMENTO PIC 9(002) OCCURS 1 TO 99
DEPENDING WS-NROELEM.
01 WS-AUXILIARES.
05 WS-NROELEM PIC 9(002).
05 I PIC 9(002) VALUE 1.
05 J PIC 9(002).
05 K PIC 9(002).
05 T PIC X(002).
*---------------------------------------------------------------
PROCEDURE DIVISION.
*---------------------------------------------------------------
PERFORM 001-INICIAL
PERFORM 002-PROCESSAMENTO
PERFORM 003-FINAL
STOP RUN.
001-INICIAL.
DISPLAY 'Entre com o numero de elementos'.
ACCEPT WS-NROELEM.
DISPLAY 'Entre com elementos'.
PERFORM WS-NROELEM TIMES
ACCEPT WS-ELEMENTO(I)
ADD 1 TO I
END-PERFORM.
002-PROCESSAMENTO.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > WS-NROELEM
COMPUTE K = I + 1
PERFORM VARYING J FROM K BY 1 UNTIL J > WS-NROELEM
IF WS-ELEMENTO (I) > WS-ELEMENTO (J)
MOVE WS-ELEMENTO (I) TO T
MOVE WS-ELEMENTO (J) TO WS-ELEMENTO (I)
MOVE T TO WS-ELEMENTO (J)
END-IF
END-PERFORM
END-PERFORM.
003-FINAL.
MOVE 1 TO I.
DISPLAY 'A tabela classifica: '.
PERFORM WS-NROELEM TIMES
DISPLAY WS-ELEMENTO(I)
ADD 1 TO I
END-PERFORM.
* Resultado do teste realizado?
Número de elementos: 10 (dez)
Valor dos elementos: 10 22 4 52 12 53 65 6 67 56
Tabela classificada: 04 06 10 12 22 52 53 56 65 67
|