COBOL - Exemplos simples - Exibir o valor máximo e mínimo de uma matriz



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

COBOL - Exemplos simples - Exibir o valor máximo e mínimo de uma matriz

É muito simples.

Verifique os códigos abaixo:

Exemplo 1
IDENTIFICATION DIVISION.
PROGRAM-ID. MAXMIN.

DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-MAXIMO   PIC 9(2)  VALUE 0.
    05  WS-MINIMO   PIC 9(2)  VALUE 99.
    05  WS-I        PIC 9(2)  VALUE 0. 
    05  WS-TAB      VALUE "1915664112".
        10 WS-ELE   PIC 9(2) OCCURS 5 TIMES.

PROCEDURE DIVISION.

PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 5
     IF WS-ELE (WS-I) > WS-MAXIMO
        MOVE WS-ELE (WS-I) TO WS-MAXIMO
     END-IF
     IF WS-ELE (WS-I) < WS-MINIMO
        MOVE WS-ELE (WS-I) TO WS-MINIMO
     END-IF  
END-PERFORM. 

DISPLAY 'O número mais alto é : ' WS-MAXIMO.
DISPLAY 'O menor número é     : ' WS-MINIMO.
STOP RUN.

Abaixo está o resultado:

O número mais alto é : 66
O menor número é     : 12


Exemplo 2
IDENTIFICATION DIVISION.
PROGRAM-ID. MAXMIN.

DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-MAXIMO   PIC 9(2)  VALUE 0.
    05  WS-MINIMO   PIC 9(2)  VALUE 99.
    05  WS-I        PIC 9(2)  VALUE 0. 
    05  WS-TAB      VALUE "19150141121999664112".
        10 WS-ELE   PIC 9(2) OCCURS 10 TIMES.

PROCEDURE DIVISION.

PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 10
     IF WS-ELE (WS-I) > WS-MAXIMO
        MOVE WS-ELE (WS-I) TO WS-MAXIMO
     END-IF
     IF WS-ELE (WS-I) < WS-MINIMO
        MOVE WS-ELE (WS-I) TO WS-MINIMO
     END-IF  
END-PERFORM. 

DISPLAY 'O número mais alto é : ' WS-MAXIMO.
DISPLAY 'O menor número é     : ' WS-MINIMO.
STOP RUN.

Abaixo está o resultado:

O número mais alto é : 99
O menor número é     : 01


Exemplo 3
IDENTIFICATION DIVISION.
PROGRAM-ID. MAXMIN.

DATA DIVISION. 
WORKING-STORAGE SECTION.
01  WS-AUXILIARES.
    05  WS-MAXIMO   PIC 9(3)  VALUE 0.
    05  WS-MINIMO   PIC 9(3)  VALUE 99.
    05  WS-I        PIC 9(3)  VALUE 0. 
    05  WS-TAB      VALUE "191152013414125196997668419128".
        10 WS-ELE   PIC 9(3) OCCURS 10 TIMES.

PROCEDURE DIVISION.

PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 10
     IF WS-ELE (WS-I) > WS-MAXIMO
        MOVE WS-ELE (WS-I) TO WS-MAXIMO
     END-IF
     IF WS-ELE (WS-I) < WS-MINIMO
        MOVE WS-ELE (WS-I) TO WS-MINIMO
     END-IF  
END-PERFORM. 

DISPLAY 'O número mais alto é : ' WS-MAXIMO.
DISPLAY 'O menor número é     : ' WS-MINIMO.
STOP RUN.

Abaixo está o resultado:

O número mais alto é : 997
O menor número é     : 013