*-----------------------------------------------------------------
IDENTIFICATION DIVISION.
*-----------------------------------------------------------------
PROGRAM-ID. SEARCH.
AUTHOR. DORNELLES CARLOS ALBERTO.
*-----------------------------------------------------------------
* PROGRAMA : SEARCH
* OBJETIVO : USO DO COMANDO SEARCH COM TABELA ORDENADA
* : CHAVE ALFA - PODE SER NUMERICA
* ANALISTA : CARLOS ALBERTO DORNELLES
* DESENVOLVEDOR : CARLOS ALBERTO DORNELLES
* LINGUAGEM : COBOL
* MODO OPERACAO : BATCH
*-----------------------------------------------------------------
* VERSAO DD.MM.AAAA HISTORICO AUTOR
* ------ ---------- --------------- ---------------------------
* 001 20.06.2021 PROGRAMA INICIAL DORNELLES CARLOS ALBERTO
*-----------------------------------------------------------------
*-----------------------------------------------------------------
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-TABELA-ESTADOS.
05 TAB-NOME-UF.
10 FILLER PIC X(021) VALUE "ACACRE ".
10 FILLER PIC X(021) VALUE "ALALAGOAS ".
10 FILLER PIC X(021) VALUE "AMAMAZONAS ".
10 FILLER PIC X(021) VALUE "APAMAPA ".
10 FILLER PIC X(021) VALUE "BABAHIA ".
10 FILLER PIC X(021) VALUE "CECEARA ".
10 FILLER PIC X(021) VALUE "DFDISTRITO FEDERAL ".
10 FILLER PIC X(021) VALUE "ESESPIRITO SANTO ".
10 FILLER PIC X(021) VALUE "GOGOIAS ".
10 FILLER PIC X(021) VALUE "MAMARANHAO ".
10 FILLER PIC X(021) VALUE "MGMINAS GERAIS ".
10 FILLER PIC X(021) VALUE "MSMATO GROSSO DO SUL ".
10 FILLER PIC X(021) VALUE "MTMATO GROSSO ".
10 FILLER PIC X(021) VALUE "PAPARA ".
10 FILLER PIC X(021) VALUE "PBPARAIBA ".
10 FILLER PIC X(021) VALUE "PEPERNAMBUCO ".
10 FILLER PIC X(021) VALUE "PIPIAUI ".
10 FILLER PIC X(021) VALUE "PRPARANA ".
10 FILLER PIC X(021) VALUE "RJRIO DE JANEIRO ".
10 FILLER PIC X(021) VALUE "RNRIO GRANDE DO NORTE".
10 FILLER PIC X(021) VALUE "RORONDONIA ".
10 FILLER PIC X(021) VALUE "RRRORAIAMA ".
10 FILLER PIC X(021) VALUE "RSRIO GRANDE DO SUL ".
10 FILLER PIC X(021) VALUE "SCSANTA CATARINA ".
10 FILLER PIC X(021) VALUE "SESERGIPE ".
10 FILLER PIC X(021) VALUE "SPSAO PAULO ".
10 FILLER PIC X(021) VALUE "TOTOCANTINS ".
05 TAB-NOME-UF-R REDEFINES TAB-NOME-UF.
07 WS-CAJUGUDU OCCURS 27 TIMES
ASCENDING KEY SIGLA-UF
INDEXED BY IX-TAB.
10 SIGLA-UF PIC X(002).
10 NOME-UF PIC X(019).
01 WS-AUXILIARES.
05 NAO-ACHOU-NADA PIC 9(003) VALUE ZEROES.
05 WS-SIGLA-UF PIC X(002) VALUE SPACES.
05 WS-VARIAVEL PIC X(019) VALUE SPACES.
PROCEDURE DIVISION.
MOVE ZEROES TO NAO-ACHOU-NADA
MOVE "SP" TO WS-SIGLA-UF
SET IX-TAB TO 1
SEARCH WS-CAJUGUDU
AT END
MOVE 1 TO NAO-ACHOU-NADA
WHEN SIGLA-UF (IX-TAB) EQUAL WS-SIGLA-UF
MOVE NOME-UF (IX-TAB) TO WS-VARIAVEL
END-SEARCH
IF NAO-ACHOU-NADA EQUAL 1
DISPLAY "SIGLA - " WS-SIGLA-UF " NAO ENCONTRADA"
ELSE
DISPLAY "SIGLA - " WS-SIGLA-UF " - "
WS-VARIAVEL " ENCONTRADA"
END-IF
STOP RUN.
SIGLA - SP - SAO PAULO ENCONTRADA
MOVE "FN" TO WS-SIGLA-UF
SIGLA - FN NAO ENCONTRADA
|