       IDENTIFICATION DIVISION.
       PROGRAM-ID. PROG36.
      *    PROGRAMA PARA INSERIR DADOS EM ARQUIVO INDEXADO.
      *     WRITE COM INVALID KEY.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT ARQUIVO-FUNCIONARIO
           ASSIGN TO "funcionarios.dat"
           ORGANIZATION IS INDEXED
           RECORD KEY IS FUNCIONARIO-CODIGO
           ACCESS MODE IS DYNAMIC.
       DATA DIVISION.
       FILE SECTION.
       FD  ARQUIVO-FUNCIONARIO.
       01  FUNCIONARIO-REGISTRO.
           05 FUNCIONARIO-CODIGO PIC 9(4).
           05 FUNCIONARIO-NOME PIC X(20).
           05 FUNCIONARIO-ENDERECO PIC X(50).
           05 FUNCIONARIO-TELEFONE PIC X(15).
           05 FUNCIONARIO-EMAIL PIC X(30).

       WORKING-STORAGE SECTION.

       77  REGISTRO-ENCONTRADO PIC X.

       77  CODIGO-FUNCIONARIO-EXCLUIR PIC 9(5).

       77  CONFIRMAR-EXCLUSAO PIC X.

       PROCEDURE DIVISION.
       PROGRAM-BEGIN.
           OPEN I-O ARQUIVO-FUNCIONARIO.

           PERFORM PEGA-REGISTRO-FUNCIONARIO.

           PERFORM DELETAR-REGISTRO
                 UNTIL FUNCIONARIO-CODIGO = ZEROES.

           CLOSE ARQUIVO-FUNCIONARIO.

       PROGRAM-DONE.
           STOP RUN.
       PEGA-REGISTRO-FUNCIONARIO.
           MOVE SPACE TO FUNCIONARIO-REGISTRO.
           MOVE ZEROS TO FUNCIONARIO-CODIGO.

           DISPLAY "INFORME O CODIGO DO FUNCIONARIO".
           DISPLAY "PARA EXCLUIR(1-9999)".
           DISPLAY "DIGITE 0(ZERO) PARA CANCELAR:"
           ACCEPT CODIGO-FUNCIONARIO-EXCLUIR.

           MOVE CODIGO-FUNCIONARIO-EXCLUIR TO FUNCIONARIO-CODIGO.

           MOVE "N" TO REGISTRO-ENCONTRADO.

           PERFORM ENCONTRA-REGISTRO-FUNCIONARIO
                UNTIL REGISTRO-ENCONTRADO = "S" OR
                    FUNCIONARIO-CODIGO = ZEROES.

       ENCONTRA-REGISTRO-FUNCIONARIO.
           MOVE "S" TO REGISTRO-ENCONTRADO.
           READ ARQUIVO-FUNCIONARIO RECORD
               INVALID KEY
                  MOVE "N" TO REGISTRO-ENCONTRADO.
           IF REGISTRO-ENCONTRADO = "N"
               DISPLAY "REGISTRO NAO ENCONTRADO"
               DISPLAY "INFORME O CODIGO DO FUNCIONARIO"
               DISPLAY " PARA EXCLUIR(1-9999)"
               DISPLAY "DIGITE 0(ZERO) PARA CANCELAR:"
               ACCEPT CODIGO-FUNCIONARIO-EXCLUIR.

           MOVE CODIGO-FUNCIONARIO-EXCLUIR TO FUNCIONARIO-CODIGO.

       DELETAR-REGISTRO.
      *     exibir todos os campos do registro.
           DISPLAY " ".
           DISPLAY "CODIGO: " FUNCIONARIO-CODIGO.
           DISPLAY "NOME: " FUNCIONARIO-NOME.
           DISPLAY "ENDERECO: " FUNCIONARIO-ENDERECO.
           DISPLAY "TELEFONE: " FUNCIONARIO-TELEFONE.
           DISPLAY "EMAIL: " FUNCIONARIO-EMAIL.
           DISPLAY " ".

           MOVE "X" TO CONFIRMAR-EXCLUSAO.

           PERFORM PERGUNTA-EXCLUIR
              UNTIL CONFIRMAR-EXCLUSAO = "S" OR "N".

           IF CONFIRMAR-EXCLUSAO = "S"
               DELETE ARQUIVO-FUNCIONARIO RECORD
                 INVALID KEY
                 DISPLAY "ERRO AO EXCLUIR O REGISTRO".

           PERFORM PEGA-REGISTRO-FUNCIONARIO.

       PERGUNTA-EXCLUIR.
           DISPLAY "DESEJA EXCLUIR ESTE REGISTRO(S/N)?".
           ACCEPT CONFIRMAR-EXCLUSAO.
           IF CONFIRMAR-EXCLUSAO ="s"
               MOVE "S" TO CONFIRMAR-EXCLUSAO.
           IF CONFIRMAR-EXCLUSAO = "n"
               MOVE "N" TO CONFIRMAR-EXCLUSAO.

           IF CONFIRMAR-EXCLUSAO NOT = "S" AND
              CONFIRMAR-EXCLUSAO NOT = "N"
              DISPLAY "VOCE DEVE ESCOLHER SIM OU NAO".
