Perguntas para Entrevistas de Nível Sênior

Uma lista com 20 possíveis perguntas para entrevista de candidatos com conhecimento profundo de Cobol e longa experiência em programação nessa linguagem.

Essa lista vai crescendo à medida em que recebo sugestões de novos temas e novas perguntas. Se quiser deixar sua opinião e suas sugestões, use o campo de comentários no final da página.

Você pode fazer uma revisão geral seguindo o tutorial Cobol: Do Básico ao Avançado, disponível nesse portal. Não deixe de dar uma olhada também nas Perguntas para Entrevistas de Nível Júnior ou Pleno, e também nas questões de múltipla escolha do Teste #1 e do Teste #2.

  1. Um programa Cobol, rodando num mainframe, abendou com 0C7. Qual a sua principal suspeita?
    O programa tentou utilizar uma variável numérica não inicializada, ou tentou mover um conteúdo não numérico para uma variável numérica.
  2. Em que situações você usaria o comando GO TO num programa?
    Somente quando fosse melhorar sua legibilidade. Usar o GO TO para desviar o programa para um parágrafo de saída (ou EXIT) deixa o programa mais claro que um enorme ninho de IFs e ELSEs.
  3. Qual a diferença entre SEARCH e SEARCH ALL?
    SEARCH pesquisa um array ou tabela interna de maneira sequencial. SEARCH ALL faz uma pesquisa binária e por isso a tabela precisa estar previamente ordenada.
  4. Como o Cobol guarda o sinal de um valor numérico em um campo COMP-3?
    No último nibble (ou no último meio byte).
  5. Um arquivo foi gerado no Cobol cheio de campos COMP-3 e COMP,  e agora você precisa enviar esse arquivo para ser processado em outra plataforma por um sistema escrito em outra linguagem. O que você faria?
    Muito provavelmente esse outro sistema não trabalha com campos COMP e COMP-3. Talvez a solução mais fácil seja codificar um novo programa Cobol que leia esse arquivo e gere todos os campos em formato USAGE DISPLAY.
  6.  Que tipo de organização de arquivo a gente declara para arquivos indexados ou KSDS VSAM?
    ORGANIZATION INDEXED.
  7.  Que tipos de acesso a gente pode usar para arquivos indexados?
    ACCESS MODE SEQUENTIAL, RANDOM ou DYNAMIC.
  8. E qual a diferença entre acesso RANDOM e DYNAMIC?
    Arquivos com tipo de acesso dinâmico podem ser lidos tanto sequencialmente como randomicamente.
  9. Qual a diferença entre as diretivas de compilação SSRANGE e NOSSRANGE?
    Se o programa for compilado com SSRANGE, ele vai sempre verificar se o subscrito utilizado numa referência a um array está dentro dos limites estabelecidos pelo OCCURS desse array. Com a diretiva NOSSRANGE o programa não fará essa verificação.
  10. E que consequências pode haver para um programa compilado com NOSSRANGE?
    Se ele tentar, por exemplo, fazer referência à ocorrência 15 de um array definido com OCCURS 10 o programa não vai dar erro de subscrit out of limit. Em compensação pode pegar sujeira de memória e abendar com 0C7…
  11. Existe vantagens em usar command terminators?
    Sim, eles deixam o programa mais legível e até facilitam a codificação em determinados casos.
  12. Pode dar alguns exemplos de command terminators que você costuma usar?
    END-IF, END-EVALUATE, END-PERFORM, END-READ…
  13.  Que tipo de solução você pode implementar com SORT INPUT/OUTPUT PROCEDURE e que não daria para implementar com SORT USING/GIVING?
    Com INPUT/OUTPUT PROCEDURE a gente tem mais controle sobre os registros que serão classificados, podendo, por exemplo, selecionar os registros de um arquivo de entrada e classificar só alguns deles. USING/GIVING é mais simples mas não permite isso.
  14. E qual o comando que a gente usa na INPUT PROCEDURE para gravar o arquivo que será ordenado?
    RELEASE.
  15. E o comando para ler o arquivo ordenado na OUTPUT PROCEDURE?
    RETURN.
  16.  Um tempo atrás, quando a gente queria sair de um parágrafo, normalmente a gente dava um GO TO para um segundo parágrafo que tinha apenas o comando EXIT e usava o nome desse segundo parágrafo no PERFORM THRU. Nos compiladores mais novos existe um comando para isso, você sabe qual é?
    EXIT PARAGRAPH.
  17.  Um programa Cobol terminou de forma anormal exibindo uma mensagem que dizia “OPENING FILE X WITH FILE STATUS 39”. O que você acha que pode ser?
    O programa tentou abrir um arquivo mas o tamanho do registro ou do bloco ou o formato do registro do arquivo real não corresponde ao que foi declarado no programa.
  18. O que é BALANCE LINE?
    Uma técnica para codificar programas que precisam processar dois ou mais arquivos sequenciais ordenados por uma mesma chave.
  19.  Um dos nossos usuários passou a receber recentemente um arquivo gerado por um programa Cobol. Nas palavras desse usuário, o final de cada linha do arquivo estava cheia de “quadradinhos”. O que você acha que pode ser?
    Os campos finais do arquivo provavelmente não estão sendo inicializados pelo programa. Esses “quadradinhos”, na verdade, são caracteres nulos que viraram caracteres especiais quando o arquivo foi transmitido para o usuário.
  20.  Qual a principal diferença entre um programa Cobol codificado com free format para um programa Cobol codificado em fixed format?
    No free format não existem mais as restrições de coluna das famosas áreas A e B.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *