Last active
September 1, 2020 13:18
-
-
Save nenodias/3c933bba14bdfc6351fef28a3672adf4 to your computer and use it in GitHub Desktop.
Cobol Operations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IDENTIFICATION DIVISION. | |
PROGRAM-ID. CRUD. | |
ENVIRONMENT DIVISION. | |
INPUT-OUTPUT SECTION. | |
FILE-CONTROL. | |
SELECT ARQUIVO-FUNCIONARIO ASSIGN TO | |
"ARQUIVO-FUNCIONARIO-IDX.DAT" ORGANISATION IS INDEXED | |
RECORD KEY IS FUNCIONARIO-CODIGO ACCESS MODE IS DYNAMIC. | |
DATA DIVISION. | |
FILE SECTION. | |
FD ARQUIVO-FUNCIONARIO LABEL RECORDS ARE STANDARD. | |
01 FUNCIONARIO-REGISTRO. | |
05 FUNCIONARIO-CODIGO PIC 9(5). | |
05 FUNCIONARIO-NOME PIC X(20). | |
05 FUNCIONARIO-ENDERECO PIC X(50). | |
05 FUNCIONARIO-TELEFONE PIC X(15). | |
05 FUNCIONARIO-EMAIL PIC X(100). | |
05 FILLER PIC X VALUE "-". | |
WORKING-STORAGE SECTION. | |
01 RESPOSTA PIC X. | |
01 FINAL-ARQUIVO PIC X. | |
PROCEDURE DIVISION. | |
PROGRAM-BEGIN. | |
PERFORM MENU UNTIL RESPOSTA = "S". | |
PROGRAM-DONE. | |
STOP RUN. | |
MENU. | |
DISPLAY "OPERACAO". | |
DISPLAY "1 - CADASTRAR REGISTROS". | |
DISPLAY "2 - LER REGISTROS". | |
DISPLAY "3 - LER POR CODIGO". | |
DISPLAY "4 - ATUALIZAR REGISTRO POR CODIGO". | |
DISPLAY "5 - EXCLUIR REGISTRO POR CODIGO". | |
DISPLAY "S - SAIR". | |
ACCEPT RESPOSTA. | |
IF RESPOSTA = "1" THEN | |
PERFORM CADASTRAR-REGISTRO. | |
IF RESPOSTA = "2" THEN | |
PERFORM LER-REGISTRO. | |
IF RESPOSTA = "3" THEN | |
PERFORM LER-POR-CODIGO. | |
IF RESPOSTA = "4" THEN | |
PERFORM ATUALIZAR-REGISTRO-POR-CODIGO. | |
IF RESPOSTA = "5" THEN | |
PERFORM EXCLUIR-REGISTRO-POR-CODIGO. | |
IF RESPOSTA = "S" THEN | |
PERFORM PROGRAM-DONE. | |
* INSERCAO | |
CADASTRAR-REGISTRO. | |
OPEN I-O ARQUIVO-FUNCIONARIO. | |
MOVE "S" TO RESPOSTA. | |
PERFORM ADICIONA-REGISTRO UNTIL RESPOSTA = "N". | |
CLOSE ARQUIVO-FUNCIONARIO. | |
ADICIONA-REGISTRO. | |
INITIALIZE FUNCIONARIO-REGISTRO. | |
DISPLAY "INFORME O CODIGO". | |
ACCEPT FUNCIONARIO-CODIGO. | |
DISPLAY "INFORME O NOME". | |
ACCEPT FUNCIONARIO-NOME. | |
DISPLAY "INFORME O ENDERECO". | |
ACCEPT FUNCIONARIO-ENDERECO. | |
DISPLAY "INFORME O TELEFONE". | |
ACCEPT FUNCIONARIO-TELEFONE. | |
DISPLAY "INFORME O EMAIL". | |
ACCEPT FUNCIONARIO-EMAIL. | |
WRITE FUNCIONARIO-REGISTRO INVALID KEY | |
DISPLAY "CODIGO: " FUNCIONARIO-CODIGO | |
" IDENTIFICADOR JA FOI UTILIZADO" | |
END-WRITE. | |
DISPLAY "DESEJA ADICIONAR OUTRO REGISTRO (S/N)?" | |
ACCEPT RESPOSTA. | |
LER-POR-CODIGO. | |
OPEN INPUT ARQUIVO-FUNCIONARIO. | |
DISPLAY "CODIGO BUSCADO:". | |
ACCEPT FUNCIONARIO-CODIGO. | |
MOVE "S" TO RESPOSTA. | |
READ ARQUIVO-FUNCIONARIO RECORD | |
INVALID KEY MOVE "N" TO RESPOSTA | |
END-READ. | |
IF RESPOSTA = "S" THEN | |
PERFORM EXIBIR-REGISTRO | |
ELSE | |
DISPLAY "REGISTRO " FUNCIONARIO-CODIGO | |
" NAO ENCONTRADO" | |
END-IF. | |
CLOSE ARQUIVO-FUNCIONARIO. | |
* LEITURA | |
LER-REGISTRO. | |
OPEN INPUT ARQUIVO-FUNCIONARIO. | |
MOVE "N" TO FINAL-ARQUIVO. | |
PERFORM LER-PROXIMO-REGISTRO. | |
PERFORM EXIBIR-REGISTRO | |
UNTIL FINAL-ARQUIVO = "S". | |
CLOSE ARQUIVO-FUNCIONARIO. | |
LER-PROXIMO-REGISTRO. | |
READ ARQUIVO-FUNCIONARIO RECORD AT END | |
MOVE "S" TO FINAL-ARQUIVO. | |
EXIBIR-REGISTRO. | |
DISPLAY "CODIGO: "FUNCIONARIO-CODIGO. | |
DISPLAY "NOME: "FUNCIONARIO-NOME. | |
DISPLAY "ENDERECO: "FUNCIONARIO-ENDERECO. | |
DISPLAY "TELEFONE: "FUNCIONARIO-TELEFONE. | |
DISPLAY "EMAIL: "FUNCIONARIO-EMAIL. | |
DISPLAY "===================" | |
PERFORM LER-PROXIMO-REGISTRO. | |
ATUALIZAR-REGISTRO-POR-CODIGO. | |
PERFORM LER-POR-CODIGO. | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "EDITAR REGISTRO: " FUNCIONARIO-CODIGO | |
DISPLAY "ALTERAR O NOME?(S/N)" | |
ACCEPT RESPOSTA | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "INFORME O NOME" | |
ACCEPT FUNCIONARIO-NOME | |
END-IF | |
DISPLAY "ALTERAR O ENDERECO?(S/N)" | |
ACCEPT RESPOSTA | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "INFORME O ENDERECO" | |
ACCEPT FUNCIONARIO-ENDERECO | |
END-IF | |
DISPLAY "ALTERAR O TELEFONE?(S/N)" | |
ACCEPT RESPOSTA | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "INFORME O TELEFONE" | |
ACCEPT FUNCIONARIO-TELEFONE | |
END-IF | |
DISPLAY "ALTERAR O EMAIL?(S/N)" | |
ACCEPT RESPOSTA | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "INFORME O EMAIL" | |
ACCEPT FUNCIONARIO-EMAIL | |
END-IF | |
OPEN I-O ARQUIVO-FUNCIONARIO | |
MOVE "S" TO RESPOSTA | |
REWRITE FUNCIONARIO-REGISTRO INVALID KEY | |
MOVE "N" TO RESPOSTA | |
END-REWRITE | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "REGISTRO: " FUNCIONARIO-CODIGO | |
" ATUALIZADO" | |
ELSE | |
DISPLAY "ERRO AO REGRAVAR REGISTRO: " | |
FUNCIONARIO-CODIGO | |
END-IF | |
CLOSE ARQUIVO-FUNCIONARIO | |
MOVE 'N' TO RESPOSTA | |
END-IF. | |
EXCLUIR-REGISTRO-POR-CODIGO. | |
PERFORM LER-POR-CODIGO. | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "EXCLUIR REGISTRO: " FUNCIONARIO-CODIGO | |
"(S/N)?" | |
ACCEPT RESPOSTA | |
IF RESPOSTA = 'S' THEN | |
OPEN I-O ARQUIVO-FUNCIONARIO | |
MOVE 'S' TO RESPOSTA | |
DELETE ARQUIVO-FUNCIONARIO RECORD INVALID KEY | |
MOVE 'N' TO RESPOSTA | |
END-DELETE | |
IF RESPOSTA = 'S' THEN | |
DISPLAY "REGISTRO: " FUNCIONARIO-CODIGO | |
" EXCLUIDO COM SUCESSO" | |
ELSE | |
DISPLAY "ERRO AO EXCLUIR REGISTRO: " | |
FUNCIONARIO-CODIGO | |
END-IF | |
CLOSE ARQUIVO-FUNCIONARIO | |
END-IF | |
MOVE 'N' TO RESPOSTA | |
END-IF. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IDENTIFICATION DIVISION. | |
PROGRAM-ID. CRUD. | |
ENVIRONMENT DIVISION. | |
INPUT-OUTPUT SECTION. | |
FILE-CONTROL. | |
SELECT OPTIONAL ARQUIVO-CLIENTE ASSIGN TO | |
"ARQUIVO-CLIENTE.DAT" ORGANISATION IS SEQUENTIAL. | |
DATA DIVISION. | |
FILE SECTION. | |
FD ARQUIVO-CLIENTE LABEL RECORDS ARE STANDARD. | |
01 CLIENTE-REGISTRO. | |
05 CLIENTE-NOME PIC X(20). | |
05 CLIENTE-ENDERECO PIC X(50). | |
05 CLIENTE-TELEFONE PIC X(15). | |
05 CLIENTE-EMAIL PIC X(100). | |
05 FILLER PIC X VALUE "-". | |
WORKING-STORAGE SECTION. | |
01 RESPOSTA PIC X. | |
01 FINAL-ARQUIVO PIC X. | |
PROCEDURE DIVISION. | |
PROGRAM-BEGIN. | |
PERFORM MENU UNTIL RESPOSTA = "S". | |
PROGRAM-DONE. | |
STOP RUN. | |
MENU. | |
DISPLAY "OPERACAO". | |
DISPLAY "1 - CADASTRAR REGISTROS". | |
DISPLAY "2 - LER REGISTROS". | |
DISPLAY "S - SAIR". | |
ACCEPT RESPOSTA. | |
IF RESPOSTA = "1" THEN | |
PERFORM CADASTRAR-REGISTRO. | |
IF RESPOSTA = "2" THEN | |
PERFORM LER-REGISTRO. | |
IF RESPOSTA = "S" THEN | |
PERFORM PROGRAM-DONE. | |
* INSERCAO | |
CADASTRAR-REGISTRO. | |
OPEN EXTEND ARQUIVO-CLIENTE. | |
MOVE "S" TO RESPOSTA. | |
PERFORM ADICIONA-REGISTRO UNTIL RESPOSTA = "N". | |
CLOSE ARQUIVO-CLIENTE. | |
ADICIONA-REGISTRO. | |
INITIALIZE CLIENTE-REGISTRO. | |
DISPLAY "INFORME O NOME". | |
ACCEPT CLIENTE-NOME. | |
DISPLAY "INFORME O ENDERECO". | |
ACCEPT CLIENTE-ENDERECO. | |
DISPLAY "INFORME O TELEFONE". | |
ACCEPT CLIENTE-TELEFONE. | |
DISPLAY "INFORME O EMAIL". | |
ACCEPT CLIENTE-EMAIL. | |
WRITE CLIENTE-REGISTRO. | |
DISPLAY "DESEJA ADICIONAR OUTRO REGISTRO (S/N)?" | |
ACCEPT RESPOSTA. | |
* LEITURA | |
LER-REGISTRO. | |
OPEN INPUT ARQUIVO-CLIENTE. | |
MOVE "N" TO FINAL-ARQUIVO. | |
PERFORM LER-PROXIMO-REGISTRO. | |
PERFORM EXIBIR-REGISTRO | |
UNTIL FINAL-ARQUIVO = "S". | |
CLOSE ARQUIVO-CLIENTE. | |
LER-PROXIMO-REGISTRO. | |
READ ARQUIVO-CLIENTE RECORD AT END | |
MOVE "S" TO FINAL-ARQUIVO. | |
EXIBIR-REGISTRO. | |
DISPLAY "NOME: "CLIENTE-NOME. | |
DISPLAY "ENDERECO: "CLIENTE-ENDERECO. | |
DISPLAY "TELEFONE: "CLIENTE-TELEFONE. | |
DISPLAY "EMAIL: "CLIENTE-EMAIL. | |
DISPLAY "===================" | |
PERFORM LER-PROXIMO-REGISTRO. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IDENTIFICATION DIVISION. | |
PROGRAM-ID. YOUR-PROGRAM-NAME. | |
DATA DIVISION. | |
FILE SECTION. | |
WORKING-STORAGE SECTION. | |
01 INDICE PIC 9(1) VALUE 1. | |
01 ALUNOS. | |
10 ALUNO OCCURS 4 TIMES. | |
15 NOME PIC X(20). | |
15 NOTA PIC 9(4)V99. | |
PROCEDURE DIVISION. | |
MAIN-PROCEDURE. | |
PERFORM PROGRAM-BEGIN. | |
PROGRAM-DONE. | |
STOP RUN. | |
PROGRAM-BEGIN. | |
MOVE "NENO" TO NOME(INDICE). | |
MOVE 10 TO NOTA(INDICE). | |
ADD 1 TO INDICE. | |
MOVE "JUCA" TO NOME(INDICE). | |
MOVE 8 TO NOTA(INDICE). | |
ADD 1 TO INDICE. | |
MOVE "LUCCA" TO NOME(INDICE). | |
MOVE 7 TO NOTA(INDICE). | |
ADD 1 TO INDICE. | |
MOVE "XUBIRU" TO NOME(INDICE). | |
MOVE 5 TO NOTA(INDICE). | |
PERFORM EXIBIR VARYING INDICE FROM 1 BY 1 UNTIL INDICE > 4. | |
EXIBIR. | |
DISPLAY "ALUNO:" NOME(INDICE) " NOTA: "NOTA(INDICE). | |
END PROGRAM YOUR-PROGRAM-NAME. | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IDENTIFICATION DIVISION. | |
PROGRAM-ID. PROG27. | |
* ADD, SUBTRACT, MULTIPLI, DIVIDE. | |
ENVIRONMENT DIVISION. | |
DATA DIVISION. | |
WORKING-STORAGE SECTION. | |
01 VALOR1 PIC 99 VALUE 20. | |
01 VALOR2 PIC 9 VALUE 5. | |
01 VALOR3 PIC 99 VALUE 15. | |
01 RESULTADO PIC 99. | |
PROCEDURE DIVISION. | |
PROGRAM-BEGIN. | |
PERFORM EXIBE-VALORES. | |
* VALOR1 = VALOR2 + VALOR1 | |
ADD VALOR2 TO VALOR1. | |
DISPLAY "VALOR1 ADD VALOR2: ". | |
PERFORM EXIBE-VALORES. | |
* VALOR1 = VALOR1 - VALOR3 | |
SUBTRACT VALOR3 FROM VALOR1. | |
DISPLAY "VALOR3 SUBTRACT VALOR1: ". | |
PERFORM EXIBE-VALORES. | |
* VALOR3 = VALOR2*VALOR3 | |
MULTIPLY VALOR2 BY VALOR3. | |
DISPLAY "VALOR2 MULTIPLY VALOR3 ". | |
PERFORM EXIBE-VALORES. | |
* VALOR3 = VALOR3 / VALOR2 | |
DIVIDE VALOR2 INTO VALOR3. | |
DISPLAY "DIVIDE VALOR2 INTO VALOR3". | |
PERFORM EXIBE-VALORES. | |
PROGRAM-DONE. | |
STOP RUN. | |
EXIBE-VALORES. | |
DISPLAY "=======". | |
DISPLAY "VALOR1: " VALOR1. | |
DISPLAY "VALOR2: " VALOR2. | |
DISPLAY "VALOR3: " VALOR3. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment