terça-feira, 25 de janeiro de 2011

COBOL - Perguntas e respostas

001 - Quando você vai abrir um arquivo no modo EXTEND? Quando um arquivo existente deve ser anexado pela adição de novos registros no seu final.
Modo EXTEND abre o arquivo para a saída, mas é posicionado após o último registro existente no mesmo


002 - O que faz o comando CLOSE WITH LOCK? A declaração fecha um arquivo aberto e impede que o mesmo seja aberto pelo mesmo programa



003 - Qual o modo de abertura do arquivo é requerido quando o comando REWRITE é usado? O arquivo deve ser aberto no modo I-O



004 - Por que é necessário que o arquivo seja aberto no modo de I-O para REWRITE? Antes do REWRITE ser realizado, o registro deve ser lido a partir do arquivo.
Daí REWRITE inclui uma operação de entrada e uma operação de saída, substituindo o registro existente.
Portanto, o arquivo deve ser aberto no modo I-O.



005 - Que cláusula pode ser usada em vez de verificar o FILE STATUS = 10? FILE STATUS 10 é a condição de final do arquivo. Daí, cláusula END AT pode ser usada.



006 - Como se vai a posição de um arquivo indexado em um ponto específico para que as operações subseqüentes no arquivo possam começar a partir deste ponto?? Use START
START filename KEY IS EQ/GT/LT.. dataname
INVALID KEY ...



007 - Quais são os requisitos de acesso ao modo de instrução START? O modo de acesso deve ser SEQUENTIAL or DYNAMIC.



008 - Para que usamos a LINKAGE SECTION? A LINKAGE SECTION é usado para transmitir dados de um programa para outro ou para passar dados de um PROC para um programa.
É parte de um programa chamado que 'links' ou mapas para itens de dados que usaremos para enviar dados para outros programas.
É a parte do programa chamado quando estes itens compartilham partes pre-definidas.



009 - Se você fosse passar uma tabela através de ligação, que é preferível - um subscript ou um index? Não é possível passar através de um índice via linkage.
O indice não faz parte de uma chamada via working storage.
Indice usa o valor do deslocamento binario. Subscripts usa o valor da ocorrencia.



010 - Qual é a diferença entre um subscript e um índice em uma definição de tabela? Um subscript é um item de dados definido na WORKING-STORAGE, tipicamente uma PIC (999) onde um valor deve ser movido para o subscript e incrementado ou decrementado por um comando ADD TO ou SUBTRACT FROM.
Um índice é um item de registrar que existe fora de armazenamento de trabalho do programa.
Voce incrementa ou decresmenta um indice atraves do SET UP BY ou SET DOWN BY.
Um índice somente pode ser modificado usando PERFORM, SEARCH e SET.
É necessário ter um índice para usar os comandos SEARCH e SEARCH ALL



011 - Qual é a diferença entre o uso doe comp e comp-3? Explicar outros usos COBOL. Comp é de uso binário, enquanto comp-3 indica um decimal compactado.
Os outros usos comuns são binários e display.
Comp é definido como o mais rápido / tipo de dados numéricos preferenciais para a máquina que é executado.
IBM Mainframes são tipicamente binários e AS400 são compactados.



012 - O que é COMP-1? COMP-2? COMP-1 - Ponto flutuante de precisão simples. Usa 4 bytes.
COMP-2 - Ponto flutuante de dupla precisão. Usa 8 bytes.



013 - Como você define uma variável COMP-1? COMP-2? Nenhumna picture deve ser usada.
Exemplo: 01 WS-VAR USAGE COMP-1.



014 - Quantos bytes um campo S9(7) COMP-3 ocupa ? Ocupa 4 bytes.
O sinal é armazenado com valor hexa no ultimo meio byte.
Fórmula geral é INT((n/2) + 1)), onde n=7 neste exemplo.



015 - Quantos bytes tem uma PIC S9(007) ? Ocupará 7 bytes.



016 - Qual é o valor máximo que pode ser armazenado em S9(008) COMP?? 99999999



017 - O que é COMP SYNC? Faz com que os itens sejam alinhados em limites naturais.
Podem ser sincronizados a esquerda ou a direita.
Por exemplo, no mainframe o tamanho da palavra de memória é de 4 bytes.
Isto significa que cada palavra terá início a partir de um endereço divisível por 4.
Se a minha primeira variável é x (3) e a próxima é s9(004) comp, então se você não especificar a cláusula SYNC, S9(004) COMP começarão a partir de 3 bytes (supondo que ele começa a partir de 0).
Se você especificar SYNC, o item de dados binários terá início a partir do endereço 4.
Você pode ver alguns desperdício de memória, mas o acesso a este domínio computacional é mais rápido.



018 - Qual é o tamanho máximo de um item de nível 01 em COBOL I? e COBOL II? 16777215



019 - Qual é a diferente entre PIC 9.99 e 9v99? PIC 9.99 é um campo de quatro POSIÇÃO que realmente contém um ponto decimal.
PIC 9v99 é um campo de três POSIÇÃO numérico com a vírgula implícita ou assumiu posição decimal.



020 - O que faz PIC 9v99? PICTURE 9v99 é um campo numérico de três posições com uma implícita ou assumido ponto decimal após a primeira posição, o v significa um ponto decimal implícito



021 - O que acontece quando nós movemos um campo COMP-3 para um editado ( digamos z(9).zz-) Os caracteres de edição são para ser usado com os itens de dados com a cláusula como DISPLAY, que é o padrão.
Quando você tenta exibir um item de dados com uso computacional como ele não dá o formato de exibição desejado, porque o item de dados é armazenado como decimal compactado.



022 - Quais são as causas para os abends S0C1, S0C4, S0C5, S0C7, S0CB? S0C1 - Pode ser devido a:
Falta ou nome incorreto DD
Read/Write para dataset fechado
Read para um dataset aberto como output
Write para um dataset aberto como input
Chamada de um subprograma não existente.
S0C4 - Pode ser devido a:
Falta instrução Select (durante a compilação)
Subscript/index mal usado
Proteção de exceção
Parâmetros ausente no subprograma chamado
Read/Write para um arquivo fechado
Mover dados from/to para um arquivo fecheado file.
S0C5 - Pode ser devido a:
Subscript/index mal usado
Close para um dataset fechado
Accesso para a área de I/O (FD) antes de ler.
S0C7 - Pode ser devido a:
Operação numérica com dados não numéricos - mais frequente
Não utilização da working-storage
Codificação até o limite máximo permitido subscript.




023 - Qual é a diferença entre uma variavel externa e uma variável global ? As variáveis globais são acessíveis apenas para o programa de batch e as variáveis externas podem ser referenciados a partir de qualquer programa batch que residem na biblioteca do mesmo sistema.



024 - O que é um programa reentrante? Como fazer para um programa ser Reentrante? Um programa reentrante, enquanto está a ser executado reside na área comum virtual para que uma cópia do mesmo podem ser compartilhadas entre todos os chamadores.
Use a opção do compilador RENT.



025 - Qual é a diferença entre o nível 77 e 01? E qual é o mais eficiente? O nivel 01 pode ter sub-níveis de 02 até 49.
Nivel 77 não pode ter sub-níveis.
O nível 77 pode ser usado para descrever itens elementares independentes na WORKING-STORAGE ou na LINKAGE SECTION.
O nível 01 pode ser usado para descrever os itens elementares e de grupo.
Qualquer item descritos no nível 01, o sistema é colocado sobre o limite de dupla-palavra (Double-Word) e faz inserções de bytes se necessário.
Procure sempre usar nível 01 ao invés do 77 e agrupando as variáveis mais usadas.



026 - Quais são as vantagens do VS COBOL II sobre o OS/VS COBOLBOL II ? A working storage e linkage section tiveram seus limites aumentados.
São 128 megabytes como suposto a 1 megabytes em OS / VS COBOL.
Introdução de ADDRESS registro especial.
Endereçamento de 31 bits.
Ao utilizar o COBOL no PC temos apenas arquivos planos e os programas podem acessar apenas limitada de armazenamento, enquanto que no VS COBOL II, M/F programas podem acessar até 16 MB ou 2 GB, dependendo do endereçamento e pode usar arquivos VSAM para fazer I/O operações mais rapidamente.



027 - Quais são os passos que você deve passar quando da criação de um programa COBOL executável Pre-compilador DB2 (se SQL embutido for usado), CICS tradutor (se for um programa CICS ), compilador Cobol, Link editor.
Se for um programa DB2, criação de plano, vinculando o DBRMs.



028 - Quais são os requisitos mínimos para compilar um programa sem erros? Identification Division. Program-ID. Program-name.

COMPUTE W=U é uma declaração válida?
Sim, esta declaração é válida.
É o equivalente: MOVE U TO W.
No exemplo acima, quando voce preferir o comando COMPUTE ao invés do comando MOVE?
Quando os dígitos significativos no final à esquerda seria perdida em execução, a instrução COMPUTE pode detectar a condição, e permitir-lhe lidar com ela
A instrução MOVE realiza a tarefa com truncamento.
Portanto, se o erro é tamanho, precisa ser detectado e o COMPUTE será preferível ao MOVE.
A frase ON SIZE ERROR da declaração COMPUTE serve para detectar o excesso de tamanho.



029 - O que acontece quando a frase ON SIZE ERROR é especificada em uma instrução COMPUTE Se a condição ocorre, o código ON SIZE ERROR é feita e o conteúdo do campo de destino permanece inalterado.
Se a frase ON SIZE ERROR não for especificada, a atribuição é feita com truncamento.
Não há ON SIZE ERROR para a instrução MOVE.



030 - Como você vai associar os arquivos com o conjunto de dados externos e onde residem fisicamente Usando a cláusula SELECT, os arquivos externos podem ser associados.
A cláusula SELECT é definida no paragráfo FILE-CONTROL da section INPUT-OUTPUT que é codificada na ENVIRONMENT DIVISION.
A estrutura do arquivo é definida na FD na seção FILE-SECTION da DATA DIVISION para o OS.



031 - Como é que vai definir o seu arquivo para o sistema operacional? Associar o arquivo com os dados externos utilizando a cláusula SELECT da INPUT-OUTPUT SECTION.
INPUT-OUTPUT SECTION aparece dentro da ENVIRONMENT DIVISION.
Defina a tua estrutura do arquivo na FILE SECTION da DATA DIVISION.



032 - O uso da declaração Explain no COBOL? Esta declarativa providencia uma seção especial que são executados quando uma condição excepcional ocorrer.
Elas devem ser agrupadas e codificadas no início da PROCEDURE DIVISION e deve ser dividida em seções.
As declarativas começam com uma declaração USE.
O grupo inteiro das declarativas é precedido por DECLARITIVES e seguido por END-DECLARITIVES END na área A.
Os três tipos de declarativas são EXCEPTION (quando um erro ocorre durante a manipulação de arquivos), a DEBUGGING (depuração para linhas com 'D' codificadas na WORKING-STORAGE SECTION) e LABEL (para EOF ou no início ...) declarativas.



033 - Um subprograma vinculado estaticamente é chamado duas vezes. O que acontece com as variáveis de trabalho de armazenamento? A WORKING-STORAGE SECTION é alocado no início do funcionamento da unidade e todos os itens de dados com o valor cláusulas são inicializados com o valor apropriado no momento.
Quando o subprograma é chamado pela segunda vez, um trabalho de armazenamento de itens persistem em seu último estado usados.
No entanto, se o programa é especificado com INITIAL no PROGRAM-ID, a WORKING-STORAGE SECTION é reinicializada cada vez que o programa está inserido.
PROGRAM-ID. é INITIAL PROGRAM. Outros verbos usados com PROGRAM-ID são RECURSIVE e COMMON.



034 - Quando o atributo COMMON é usado? O atributo COMMON é usado com programas COBOL aninhados.
Se não for especificaoa, outros programas aninhaosa não seãoá capaz de acessar o programa.
PROGRAM-ID. Pgmname é COMMON PROGRAM.



035 - Em qual divisão e seção, o paragráfo SPECIAL-NAMES aparece? ENVIRONMENT DIVISION e CONFIGURATION SECTION.



036 - Qual é a diferença entre PERFORM ... WITH TEST AFTER e PERFORM ... WITH TEST BEFORE? Se TEST BEFORE for especificado, a condição é testada no início de cada execução e repetida no intervalo especificado PERFORM.
Se TEST AFTER for especificado, a condição é testada no final da execução de cada repetição da faixa PERFORM.
Com TEST AFTER, o intervalo é executado pelo menos uma vez.



037 - Como é codificado uma linha do PERFORM? PERFORM ... ... END-PERFORM.



038 - Na declaração EVALUTE é a ordem da cláusula WHEN significante? Sim. Avaliação das cláusulas WHEN procede de cima para baixo e sua seqüência pode determinar resultados.



039 - Qual é o valor padrão para um INITIALIZE e qual palavra-chave permite uma substituição do padrão INITIALIZE move spaces para campos alfabéticos e alfanuméricos
INITIALIZE move zeroes para campos numéricos.
FILLER, OCCURS DEPENDING ON os itens são deixados intactos..
A opção REPLACING pode ser utilizado para substituir esses padrões.



040 - O que é SET TO TRUE ? No COBOL II, o nível 88 pode ser definido em vez de mover seus valores associados ao item de dados relacionados.
Nota Web: Esta mudança não é uma das melhores especificações COBOL II.



041 - O que é LENGTH no COBOL II? LENGTH é um registo especial para dizer o comprimento de um grupo ou um item elementar.





042 - Qual é a função de um delimitador em uma STRING? Um delimitador em uma STRING faz um campo enviado ser encerrado e outro ser iniciado.



043 - Qual é a função do delimitador em uma UNSTRING? Quando um delimitador é encontrado o campo enviado é repassado ao campo receptor e assim por diante.



044 - Como você vai contar o número de caracteres em uma string terminada em null? MOVE 0 TO char-count
INSPECT null-terminated-string TALLYING char-count FOR CHARACTERS BEFORE X"00"



045 - Qual é a declaração que você vai usar para mover caracteres não nulos de uma String terminada em nulo? UNSTRING null-terminated-string DELIMITED BY X"00" INTO target-area COUNT IN char-count.
There are other methods, such as:
1) use PERFORM
2) use SEARCH
3) use INSPECT and MOVE etc...

77 COUNTR PIC 9(001) VALUE ZEROES.
01 DATA-2 PIC X(011).

INSPECT DATA-2 TALLYING COUNTR FOR LEADING "0" REPLACING FIRST "A" BY "2" AFTER INITIAL "C"
If DATA-2 is 0000ALABAMA, what will DATA-2 and COUNTER be after the execution of INSPECT verb?
Counter = 4
Data-2 will not change as the Initial 'C' is not found.

01 DATA-4 PIC X(11).
:::
INSPECT DATA-4 CONVERTING "abcdefghijklmnopqrstuvwxyz" TO "ABCDEFGHIJKLMNOPQRSTUVWXYZ" AFTER INITIAL "/" BEFORE INITIAL"?"
What will the contents of DATA-4 be after the conversion statement is performed, if before conversion
a) DATA-4 = a/five/?six
b) DATA-4 = r/Rexx/RRRr
c) DATA-4 = zfour?inspe

a) a/FIVE/?six
b) r/REXX/RRRR
c) zfour?inspe (no change at all)



046 - Qual seria a saída do DISPLAY da variável WS-TABLE? 01 WS-TABLE.
03 WS-TABLE-EL OCCURS 5 TIMES.
04 FILLER-X PIC X(001) VALUE 'A'.
04 WS-EX REDEFINES FILLER-X
PIC X(001).

'AAAAA'. O código irá compilar e executar a redefinição de um item subordinado à cláusula OCCURS.



047 - Isso é permitido? 01 WS-TABLE.
03 FILLER-X PIC X(005) VALUE 'AAAAA'.
03 WS-EX REDEFINES FILLER-X.
04 WS-TABLE-EL OCCURS 5 TIMES PIC X(001).

Sim, esta codificação é permitida.



048 - O comando SEARCH é equivalente ao PERFORM...VARYING? Sim, o comando SEARCH é equivalente mas sem cláusula ALL



049 - Pode um SEARCH ser aplicado a uma tabela que não tem um índice definido? Não, a tabela deve ser indexada.



050 - Quais são as diferentes regras aplicáveis para realizar um SEARCH? O SEARCH pode ser aplicado a apenas uma tabela que tem a cláusula OCCURS e INDEXED BY.
Antes do uso do SEARCH, o índice deve ter algum valor inicial.
Para pesquisar desde o começo, definir o valor do índice para 1.
Use o verbo SEARCH sem expressão ALL



051 - A tabela tem dois índices definidos. Qual deles será utilizado pelo verbo SEARCH? O primeiro índice nomeado será utilizado pelo SEARCH



052 - Quais são as diferentes regras aplicáveis para realizar uma busca binária (SEARCH)? A tabela deve ser ordenada em ordem ascendente ou descendente, antes do início da pesquisa.
Use cláusula OCCURS com ASC / DESC KEY IS dataname1, a tabela deve ser indexada.
Não há necessidade de definir o valor do índice. Use o verbo SEARCH ALL.



053 - Qual é a diferença entre uma pesquisa binária e uma busca seqüencial? Quais são os comandos pertinentes COBOL? Em uma busca binária do elemento tabela de valores-chave devem estar em seqüência ascendente ou descendente.
A tabela é 'metade' para busca por igual, maior ou menor do que as condições até que o elemento é encontrado.
Em uma pesquisa seqüencial na tabela é pesquisada a partir de cima para baixo, de modo (ironicamente) que os elementos não têm de estar em uma seqüência específica.
A busca binária é muito mais rápido para tabelas maiores, enquanto a procura seqüencial funciona bem com menores.
SEARCH ALL é usado para pesquisas binárias e SEARCH para pesquisa seqüencial.



054 - Como você define um arquivo de classificação (SORT) em JCL que executa o programa COBOL? Use o SORTWK01, SORTWK02 ,..... dd nomes nO etapa (STEP).
Número de conjuntos de dados de classificação (sort datasets) depende do volume de dados a serem ordenados, mas um mínimo de 3 é necessária.



055 - Qual é o padrão, TESTE ANTES ou TESTE DEPOIS para a instrução PERFORM? TESTE ANTES. Por padrão, a condição é verificada antes de executar as instruções PERFORM



056 - Como um sinal é armazenado em um campo Packed Decimal e Zoned Decimal Campo Packed Decimal: o sinal é armazenado como um valor hexadecimal na última nibble (4 bits) do armazenamento
Campo Zoned Decimal: Como padrão, o sinal é armazenado com o valor numérico no último bite



057 - Dê algumas vantagens da cláusula REDEFINES Você pode redefinir uma variável a partir de uma PICTURE para outra PICTURE utilizando o mesmo local da memória.
Por REDEFINES podemos INICIALIZAR a variável na secção WORKING-STORAGE.
Podemos redefinir uma única variável em tantas sub-variáveis.
Este recurso foi muito útil na solução do problema do ano 2000.



058 - O número máximo de dimensões que uma matriz (OCCURS) pode ter em COBOL-85 é? 7 (sete) no COBOL - 85 e 3 (tres) no COBOL - 84



059 - Nome das divisões de um programa COBOL? IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, PROCEDURE DIVISION.



060 - O que você faz para resolver erro SOC-7? Há uma necessidade para corrigir os dados em pauta.
Muitas vezes a razão para SOC7 é um item numérico não inicializado.
Examine a primeira possibilidade.
Muitas instalações oferecem software para tratamento de abends(que pode ser gerado também por chamar alguns sub-rotinas ou serviços de sistema operacional por meio da linguagem assembly).
Estes software oferecem o deslocamento da última instrução em que ocorreu o abend.
Examine a saída de compilação com XREF para obter o verbo e o número da linha do código fonte deste ABEND.
Então você pode olhar o código fonte para encontrar o bug.
Para conseguir captar os ABEND's de execução, você terá que definir alguns conjuntos de dados (SYSABOUT etc) no JCL.
Se nenhum destes são acórdão foram úteis, use o comando DISPLAY para localizar a fonte de erro.
Você pode até utilizar ferramentas de depuração do programa em lotes.



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



062 - Quando o nível 66 é utilizado? Para a clásula RENAMES



063 - O que a cláusula IS NUMERIC estabelece? IS NUMERIC pode ser usado em itens alfanuméricos, numéricos com sinal e itens decimais compactados e numérico sem sinal.
IS NUMERIC retorna TRUE se o item consiste apenas em 0-9. No entanto, se o item que está sendo testado é um item com sinal, então ele pode conter 0-9, + e -.



064 - Meu programa tem uma matriz definida para ter 10 itens. Devido a um bug, o mesmo acessa o item 11 desta matriz e o programa não abend.
O que está errado com ele? Deve usar a opção SSRANGE do compilador se você quiser limites da matriz de verificação.
O padrão é NOSSRANGE.



065 - Qual é a diferença entre executar uma SECTION e um parágrafo? Realizando uma SECTION fará com que todos os pontos que fazem parte da seção sejam realizados.
Realizando uma PARÁGRAFO fará com que apenas esse seja executado.



066 - Eu posso redefinir uma PIC X(200) por uma PIC X(100).? Sim, somente não pode redefinir uma PIC X(200) por outra maior.



067 - Como um sinal é armazenado em um campo COMP-3? Ele é armazenado no ultimo nibble. Por exemplo, se o seu número é 100, ele armazena 0C, hexadecimal no último byte, 1C hex se o seu número é 101, 1D hex se o número é de -101, 2D hex se o número for -102, etc ..



068 - Quantos números diferentes de níveis podem ser usados em COBOL para descrever um registro? 01-49.


069 - O que é o nível 88? O nível 88 na Data Division pode ser usado para dar os valores que um campo pode conter.
Quando esse nível é especificado você pode usar o nome da condição em vez de EQUAL no IF.
O nome da condição deve ser especificado no nível 88 imediatamente a descrição do campo.



070 - Quais são as diferentes maneira de se usar a declaração PERFORM? PERFORM
PERFORM THRU
PERFORM 'n' TIMES
PERFORM UNTIL
PERFORM VARYING com a opção UNTIL.



071 - O que é programação estrutura e como voce pode indentifica-la? A diferença entre a abordagem de programação regular e de programação estruturada é que os programas estruturados livram-se das declarações GO TO e todo o programa pode ser representado em um projeto Top-Down.
Este projeto é possível por causa da existência de três estruturas básicas:

a. Seqüência Estrutura: dentro da estrutura seqüência todas as funções são executadas na ordem física.
A estrutura tem um ponto de entrada e uma saída.

b. Estrutura de seleção: dentro de execução de uma seleção de estrutura as função depende de condições de verdadeiro ou falso.
A estrutura tem um ponto de entrada e uma saída.

c. Interação Estrutura: dentro da estrutura de iteração a execução da função será reiterada repetidas vezes até que a condição se torne verdadeira.
A estrutura tem um ponto de entrada e uma saída.
Devido a isso, se os programas são codificados usando apenas essas estruturas, todo o programa terá um ponto de entrada e uma saída.



072 - Quais são as vantagens da programaçào estruturada? Os programas sem as declarações GO TO e é representado por uma estrutura Top-Down que é visível e de fácil compreensão, pois os programas tem uma estrutura (hierárquica) específicas, é fácil de depurar os programas.



073 - O que é um subscript? Subscript representa a ocorrencia de uma tabela de entrada.
Subscript pode ser representedo explicitamente e implicitamente.
Significa explicitamente através ocorrência n º de entradas na tabela; significa implicitamente através de um nome de dados (data name).
Esse nome de dados deve ser definido como um item independente na WORKING-STORAGE SECTION.
A definição mais eficiente de Subscript é um binário Full-Word.



074 - O que é um index? Index é assinalado para uma tabela específica através da cláusula INDEXED BY.
Internamente é representado pelo Index Register que é binário Full-Word.
Nome de índice específico pode ser usado para fazer referência a um campo da tabela, representando o valor de deslocamento desde do início da mesma.



075 - Qual é a diferença entre Subscript e Index? Index representa um valor de deslocamento dentro da tabela desde do início da mesma, subscript é a ocorrência dentro da tabela.
Para calcular o deslocamento de entrada da tabela desde o seu início quando o SUBSCRIPT é usado leva 16 instruções adicionais do sistema por causa do que o uso do INDEX é mais eficiente.



076 - Quais são as diferentes formas de uma pesquisa na tabela interna? Pesquisa sequencial. SEARCH
Pesquisa binária. SEARCH ALL



077 - Qual é a diferença entre SEARCH e SEARCH ALL? Busca serial (SEARCH) examina cada entrada na tabela a partir do início, enquanto que uma busca binária (SEARCH ALL) começa a olhar para o ponto médio da tabela e trabalha o seu caminho em direção ao argumento, dependendo se o seu valor for muito alto ou muito baixo.
Uma pesquisa de série (SEARCH) pode ser usado para tabelas desordenadas, enquanto uma pesquisa binária (SEARCH ALL) só é útil se a tabela é ordenada.



078 - Como trocar o valor de um index no programa COBOL? Com o comando SET



079 - Quantos dados diferentes USAGEs pode ser usado em COBOL? DISPLAY, COMP, COMP-3, INDEX, POINTER.



080 - Qual é a diferença entre um CALL estático e um CALL dinamico no Cobol? Um programa chamado estaticamente é link-editado para o módulo de mesma carga que o programa de chamada.
Uma chamada estática é mais rápido do que uma chamada dinâmica.
Uma chamada estática é o método preferido se seu aplicativo não requer os serviços da chamada dinâmica.
Programas chamados estaticamente não podem ser deletados (usando CANCEL) de modo que utilizam mais memória de armazenamento.
Se memória for um problema, pense em usar as chamadas dinâmicas. Uso de memória das chamadas depende:
O subprograma é chamado apenas algumas vezes.
Independentemente de saber se ele é chamado, um programa chamado estaticamente é carregado em memória;
Um programa chamado dinamicamente é carregado apenas quando ele é chamado.
Você posteriormente pode excluir o subprograma chamado dinamicamente com uma declaração CANCEL.
Você não pode excluir um programa chamado estaticamente, mas você pode apagar um programa chamado dinamicamente.
Usando uma chamada dinâmica e, em seguida, uma declaração CANCEL para apagar o programa dinamicamente chamado depois já não é necessária a aplicação (e não após cada chamada para ele) pode exigir menos armazenamento do que usar uma chamada estática.