COBOL - Classificando uma tabela interna com um código em COBOL


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

Compativel com todos os compiladores e versões
         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