COBOL - Perguntas e respostas para entrevista



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

COBOL - Perguntas e respostas para entrevista

Caros leitores, essas perguntas da entrevista COBOL foram projetadas especialmente para você se familiarizar com a natureza das perguntas que você pode encontrar durante a entrevista para o assunto programação COBOL.

Normalmente, as perguntas começam com algum conceito básico do assunto e depois continuam com base em uma discussão mais aprofundada e no que você responde:

  1. O que você sabe sobre o COBOL?
    COBOL significa Common Business-Oriented Language.
    O Departamento de Defesa dos EUA, em uma conferência, formou a CODASYL (Conferência sobre Linguagem de Sistemas de Dados) para desenvolver uma linguagem para atender às necessidades de processamento de dados comerciais, que agora é conhecida como COBOL.

  2. Listar alguns recursos do COBOL.
    COBOL é uma linguagem padrão que pode ser compilada e executada em várias máquinas.
    É ideal para aplicativos de negócios, pois pode lidar com grandes volumes de dados.
    Ele fornece inúmeras ferramentas de depuração e teste.
    COBOL é uma linguagem estruturada; possui divisões diferentes, portanto é fácil depurar.

  3. Nomeie as divisões em um programa COBOL.
    IDENTIFICATION DIVISION (Divisão de Identificação)
    ENVIRONMENT DIVISION (Divisão de Meio Ambiente)
    DATA DIVISION (Divisão de Dados) e
    PROCEDURE DIVISION (Divisão de Procedimentos).

  4. Quais são os diferentes tipos de dados disponíveis no COBOL?
    Alfa-numérico (X), alfabético (A) e numérico (9).

  5. O que é a cláusula 'IS NUMERIC'?
    A cláusula IS NUMERIC é usada para verificar se algum item é numérico ou não.
    Retorna VERDADEIRO quando o item no qual é usado contém apenas números (0 a 9).
    O item pode ser positivo ou negativo.

  6. Para que são utilizados os níveis 66 e 88?
    O nível 66 é usado para a cláusula RENAMES e o nível 88 é usado para nomes de condições.

  7. Qual é a diferença entre subscrito e índice?
    Subscrito é a ocorrência em uma matriz.
    Índice é o deslocamento desde o início de uma matriz.

  8. Qual é a diferença entre SEARCH e SEARCH ALL?
    SEARCH é uma pesquisa serial, enquanto SEARCH ALL é uma pesquisa binária.
    Uma tabela deve estar classificada antes de usar o SEARCH ALL (ASCENDING ou DESCENDING).
    Para o comando SEARCH a tabela não precisa estar classificada.

    SEARCH SEARCH ALL
    SEARCH também é chamado de linear ou sequencial. SEARCH ALL também é chamado de binário.
    As entradas não precisam estar em qualquer ordem. As entradas da tabela devem estar em alguma ordem.
    É necessário inicializar e incrementar um índice. Apenas a inicialização é exigida de um índice. O incremento é feito automaticamente pelo sistema.
    A instrução SET é obrigatória para inicializar o índice antes de seu uso. A instrução SET não é necessária.
    Múltiplas condições quando podem ser codificadas. Apenas uma condição WHEN pode ser codificada.
    Vários operadores aritméticos como =,>, <,> <=,> =, NOT = podem ser usados. Apenas = operador é permitido.
    O acesso é lento. O acesso é mais rápido.
    Ele pode ser usado para matrizes unidimensionais e multidimensionais. Ele é usado apenas para uma matriz dimensional única.
    Os dados dentro de uma matriz não precisam estar em ordem de classificação. Os dados devem estar em ordem de classificação.

  9. Qual é a diferença entre executar uma SEÇÃO e um PARÁGRAFO?
    A execução de uma SEÇÃO fará com que todos os parágrafos que fazem parte da seção sejam executados.
    A execução de um PARAGRAPH fará com que apenas um parágrafo específico seja executado.

  10. O que é um terminador de escopo?
    O terminador de escopo é usado para marcar o final de um verbo.
    Exemplo:
    IF e END-IF
    EVALUATE e END-EVALUATE
    COMPUTE e END-COMPUTE

  11. Quais são os modos de abertura de arquivo no COBOL?
    Os modos de abertura de arquivo no COBOL incluem: INPUT, OUTPUT, I-O e EXTEND.

  12. Qual é o tamanho máximo de um campo numérico que podemos definir no COBOL?
    O tamanho máximo de um campo numérico é PIC 9(18).
    Quando você especifica ARITH(EXTEND):
    O número máximo de posições de dígitos que você pode especificar na clásula PICTURE (PIC) para itens de dados decimais compactados, decimais externos e editados numéricos é aumentado de 18 para 31.

  13. Qual é a diferença entre CONTINUE e NEXT SENTENCE?
    CONTINUE transfere o controle para a próxima instrução após o terminador do escopo.
    NEXT SENTENCE transfere o controle para a instrução após o primeiro período (ponto) ser encontrado.
    O comando CONTINUE tem a mesma função do NEXT SENTECE, porém, é o único aceito pelo ENTERPRISE COBOL.

  14. Por que não podemos definir uma cláusula Occurs no nível 01?
    01 é do nível de registro.
    Repetimos os campos em um registro, não o próprio registro.
    Portanto, uma cláusula Occurs não pode ser usada no nível 01.

  15. Qual é o modo em que você ABRIRÁ um arquivo para gravação?
    Para gravar em um arquivo, o arquivo deve ser aberto no modo OUTPUT ou EXTEND.

  16. Qual é a diferença entre Chamada por conteúdo e Chamada por referência?
    Os parâmetros passados em uma chamada por conteúdo são protegidos contra modificações pelo programa chamado.
    Em Chamada por referência, os parâmetros podem ser modificados pelo programa chamado.

  17. O que é uma seção de ligação (LINKAGE SECTION)?
    A seção de ligação faz parte de um programa chamado que 'vincula' ou mapeia para itens de dados no armazenamento de trabalho do programa de chamada.

  18. O que acontecerá se você codificar GO BACK em vez de STOP RUN em um programa COBOL independente?
    O programa irá em um loop infinito.

  19. Como o sinal é armazenado em um campo COMP-3?
    Ele é armazenado no último meio-byte.

  20. Qual é a diferença entre comp e comp-3?
    Comp é um uso binário, enquanto comp-3 indica decimal compactado.

  21. Qual é o objetivo da IDENTIFICATION DIVISION (Divisão de Identificação)?
    A Divisão de Identificação é usada para fins de documentação.

  22. Qual é a diferença entre chamada estática e chamada dinâmica?
    Na chamada estática, o programa chamado é um programa independente, é um programa executável.
    Durante o tempo de execução, podemos chamá-lo em nosso programa chamado.
    Quanto à chamada dinâmica, o programa chamado não é um programa executável, Ele pode ser executado apenas através do programa chamado.

  23. O que é a cláusula Redefines?
    A cláusula Redefines é usada para permitir que a mesma alocação de armazenamento seja referenciada por nomes de dados diferentes.

  24. Qual é o objetivo da frase do ponteiro no comando STRING?
    A frase Objetivo do ponteiro é especificar a posição mais à esquerda no campo de recebimento onde o primeiro caractere transferido será armazenado.

  25. Para que é utilizado o nível 77?
    É um item de nível elementar que não pode ser subdividido.

  26. O que é pesquisa binária?
    Compare o item a ser pesquisado com o item no centro.
    Se combina bem; caso contrário, repita o processo com a metade esquerda ou a metade direita, dependendo da localização do item.

  27. Qual é o uso da instrução EVALUATE?
    EVALUATE é como uma instrução CASE e pode ser usado para substituir Ifs aninhados.
    Nenhuma pausa é necessária, pois o controle sai assim que uma correspondência é encontrada.

  28. Posso redefinir um campo X(10) com um campo X (20)?
    Sim, pois REDEFINES faz com que ambos os campos iniciem no mesmo local.

  29. O que é COMP-1 e COMP-2?
    O COMP-1 é um ponto flutuante de precisão única que usa 4 bytes.
    O COMP-2 é um ponto flutuante de precisão dupla que usa 8 bytes.

  30. Qual é a função do Accept Verb?
    ACCEPT Verb é usado para obter dados como data, hora e dia do sistema operacional ou diretamente do usuário.
    Se um programa estiver aceitando dados do usuário, ele precisará ser transmitido pela JCL.

  31. O que é uma declaração COMPUTE?
    A instrução de COMPUTE é usada para escrever expressões aritméticas em COBOL.
    Este é um substituto para ADD (Adicionar), SUBTRACT (Subtrair), MULTIPLY (Multiplicar) e DIVIDE (Dividir).

  32. Como você define os arquivos referidos em um programa de sub-rotina?
    Forneça os cartões DD na JCL da mesma forma que faria com os arquivos referidos no programa principal.

  33. Quais divisões, seções e parágrafos são obrigatórios em um programa COBOL?
    A IDENTIFICAION DIVISION (Divisão de Identificação) e o parágrafo do PROGRAM-D (ID do Programa) são obrigatórios em um programa COBOL.

  34. De onde começa a ÁREA B em COBOL?
    A área B começa na coluna 12 a 72.
  35. Onde o parágrafo FILE-CONTROL aparece?
    Ele aparece na seção INPUT-OUPUT na ENVIRONMENT DIVISION.

  36. Qual a diferença entre as opções WITH TEST BEFORE e WITH TEST AFTER num comando PERFORM?
    Com WITH TEST BEFORE (que é o default) o PERFORM só vai executar os comandos do parágrafo se a condição UNTIL não for satisfeita.
    Com WITH TEST AFTER ele vai primeiro executar o parágrafo para só depois verificar se a condição UNTIL foi satisfeita.

  37. O que é a LOCAL-STORAGE SECTION (SEÇÃO DE ARMAZENAMENTO LOCAL)?
    O armazenamento local é alocado toda vez que um programa é chamado e será desalocado quando o programa for interrompido por meio de um EXIT PROGRAM, GOBACK ou STOP RUN.
    É definido na DATA DIVISION (DIVISÃO DE DADOS) após a WORKING-STORAGE SECTION (SEÇÃO DE ARMAZENAMENTO DE TRABALHO.

  38. Quais são os modos de acesso da instrução START?
    Os modos de acesso são SEQUENCIAL ou DINÂMICO para a instrução de início.

  39. Qual é a diferença entre PIC 9.99 e PIC9v99?
    O PIC 9.99 é um campo de quatro posições que realmente contém um ponto decimal, enquanto o PIC 9v99 é um campo numérico de três posições com posição decimal assumida.

  40. Uma pesquisa pode ser feita em uma tabela com ou sem índice?
    Não, a tabela deve ser indexada para pesquisar em uma tabela.

  41. Por que é necessário abrir um arquivo no modo I-O para REWRITE?
    Antes de REWRITE ser executado, o registro deve ser aberto e lido no arquivo.
    Portanto, o arquivo deve ser aberto no modo I-O para reescrever a funcionalidade.

  42. O que são literais?
    Um literal é um item de dados que consiste em valor por si só.
    Não pode ser referido por um nome.
    Eles são itens de dados constantes.

  43. O que acontecerá se você codificar GO BACK em vez de STOP RUN em um programa COBOL independente?
    Uma execução de parada finaliza a unidade de trabalho e retorna o controle ao sistema operacional, enquanto GOBACK retorna o controle ao programa de chamada.
    Portanto, se codificarmos GO BACK em vez de STOP RUN, ele entrará em loop infinito.

  44. Qual é o modo em que você ABRIRÁ um arquivo para gravação?
    Para gravar em um arquivo, o arquivo deve ser aberto no modo OUTPUT ou EXTEND.

  45. Onde o parágrafo FILE-CONTROL aparece?
    O parágrafo FILE-CONTROL aparece na INPUT-OUPUT SECTION na ENVIRONMENT DIVISION, que fornece informações sobre os conjuntos de dados externos usados no programa.

  46. Qual é o comprimento do PIC 9.999?
    O comprimento do PIC 9.999 é 5 como '.' leva 1 byte.
    Total de 1 byte para '.' e 4 bytes para 9.

  47. Qual verbo cobol é usado para atualizar um arquivo?
    O verbo REWRITE é usado para atualizar os registros.
    O arquivo deve ser aberto no modo I-O para operações de REWRITE.
    Só pode ser usado após uma operação de leitura bem-sucedida.
    REWRITE substitui o último registro lido.

  48. Se o valor 123 for movido para uma cláusula PP999 PIC, qual será o valor editado?
    .00123 o valor editado será obtido.
    P é assumida a posição de escala decimal usada para especificar a localização de um ponto decimal assumido quando o ponto não está dentro do número que aparece no item de dados.
    .PIC PP999 significa que o item de dados numéricos possui 3 caracteres e existem 5 posições após o ponto decimal.

  49. Onde podemos especificar a cláusula OCCURS?
    Na declaração de matriz, podemos especificar a cláusula de ocorrência no item Elementar e também no item Grupo.

  50. Quantos bytes ocupa um campo S9(007) SIGN TRAILING SEPARATE?
    9(007) terá 7 bytes e 1 byte para SIGN TRAILING SEPARATE, totalizando 8 bytes.

  51. O OPEN EXTEND serve para quê?
    Para abrir um arquivo convencional em modo de gravação, mas mantendo o conteúdo que já existia.

  52. Quando a gente precisa usar vírgula decimal ao invés de ponto decimal, que cláusulas a gente tem que declarar no programa?
    DECIMAL-POINT IS COMMA, no parágrafo SPECIAL-NAMES.

  53. SPECIAL-NAMES fica em que seção?
    CONFIGURATION SECTION.

  54. Em que divisão?
    ENVIRONMENT DIVISION.

  55. Onde se declara o FILE STATUS?
    Na cláusula SELECT, do parágrafo FILE CONTROL, na seção INPUT-OUTPUT SECTION da ENVIRONMENT DIVISION.
    A variável indicada nessa cláusula tem que ser declarada também na WORKING-STORAGE.

  56. Que picture é utilizada mais frequentemente para a variável indicada na cláusula FILE SECTION?
    PIC X(2).

  57. Qual a diferença entre compilação e linkedição?
    A compilação toma um programa fonte e transforma em programa objeto.
    A linkedição toma o programa objeto, junta com libraries e subrotinas estáticas e gera um programa executável.