Estamos fazendo uma pesquisa para entender que recursos do COBOL a comunidade de desenvolvedores considera que são essenciais para profissionais com diferentes níveis de experiência.
E você nos ajudará muito se puder participar.
Serão apresentados alguns conceitos e recursos da linguagem, e para cada um deles pedimos que você diga se…
- Espera que um programador “júnior” conheça (entre zero e 5 anos de experiência);
- Espera que um programador “pleno” conheça (entre 5 e 10 anos de experiência);
- Espera que só um programador “sênior” conheça (mais de 10 anos de experiência);
- Pode ser ignorado, uma vez que você nunca ouviu falar ou nunca teve necessidade de utilizar.
Para evitar possíveis ambiguidades de nomenclatura e terminologia, para cada tópico apresentamos um exemplo de código, numa tentativa de deixar mais claro sobre o que estamos nos referindo.
Podemos começar?
1.
Cláusulas opcionais do PROGRAM-ID (INITIAL, COMMON, RECURSIVE…):
Exemplo:
identification division.
program-id. scp0101 is initial.
2.
Diferença entre arquivo sequencial e arquivo linear sequencial:
Exemplo:
select sca0102 assign to (…)
organization is line sequential
access mode is sequential.
3.
Uso de FILE STATUS:
Exemplo:
select sca0101 assign to (…)
organization is sequential
file status is wt-st-sca0101
(…)
open input sca0101
if wt-st-sca0101 not = “00”
(…)
4.
Processamento de arquivos abertos com I-O e EXTEND:
Exemplo:
open i-o sca0101
open extend sca0102
5.
Delimitadores de escopo/comando (END-IF, END-PERFORM, END-READ, END-EVALUATE…):
Exemplo:
read sca0101 at end (…) not at end (…) end-read
6.
Uso de RETURN-CODE:
Exemplo:
move 1 to return-code
stop run.
7.
Comando EVALUATE:
Exemplo:
evaluate wt-nr-opcao
when 1 (…)
when 2 (…)
when other (…)
end-evaluate
8.
PERFORM "inline":
Exemplo:
perform varying wt-ix-ind from 1 by 1 until wt-ix-ind > 10
(…)
end-perform
9.
PERFORM WITH TEST AFTER:
Exemplo:
perform 1100-SUM-SALARY until wt-fl-last = “YES” with test after
10.
Uso de EXIT PARAGRAPH e EXIT PERFORM:
Exemplo:
1100-SUM-SALARY.
(…)
if wt-fl-found = “YES”
(…)
exit paragraph
end-if.
11.
Diferença entre CALL USING BY CONTENT e CALL USING BY VALUE:
Exemplo:
call subprogram using by content variable1 variable2
12.
Uso de CALL com USING e RETURNING:
Exemplo:
call subprogram using variable1 returning variable2
13.
Construção de tabela interna com cláusula ASCENDING / DESCENDING KEY:
Exemplo:
01 WV-FORMAS-DE-PAGAMENTO occurs 100 ascending key is WV-CD-PAGTO indexed by WT-IX.
03 WV-CD-PAGTO pic x(003).
03 WV-DS-PAGTO pic x(030).
14.
Uso de índice em tabelas internas (INDEXED BY):
Exemplo:
01 WV-FORMAS-DE-PAGAMENTO occurs 100 indexed by WT-IX.
03 WV-CD-PAGAMENTO pic x(003).
03 WV-DS-PAGAMENTO pic x(030).
15.
Pesquisar tabelas internas usando SEARCH:
Exemplo:
search WV-FORMAS-DE-PAGAMENTO varying WT-IX
when WV-CD-PAGAMENTO(WT-IX) = CODIGO-PROCURADO
(…)
end-search
16.
Diferença entre SEARCH e SEARCH ALL:
Exemplo:
search all WV-FORMAS-DE-PAGAMENTO varying WT-IX
when WV-CD-PAGAMENTO(WT-IX) = CODIGO-PROCURADO
(…)
end-search
17.
Gerar relatórios com REPORT WRITER:
Exemplo:
report section.
rd QUARTERLY-PAY
controls are final, PRR-DEPARTMENT, PRR-EMPLOYEE
page limit is 66 lines
heading 3
first detail 5
01 type page header.
18.
Classificar arquivos com INPUT / OUTPUT PROCEDURE:
Exemplo:
sort ARQUIVO on ascending key CAMPO1
input procedure PARAGRAFO1
output procedure PARAGRAFO2.
19.
Unificar arquivos usando o comando MERGE:
Exemplo:
merge ARQUIVO on ascending key CAMPO1 using ENTRADA1 ENTRADA2 giving SAIDA1
20.
Criação de telas com SCREEN SECTION:
Exemplo:
screen section.
01 ua00m01.
03 ua00m01-0.
05 line 001 col 001
blank screen foreground-color cob-color-yellow value ‘Menu de Opcoes’.
21.
Processamento de arquivos indexados (ORGANIZATION IS INDEXED, OPEN, READ, WRITE, REWRITE, DELETE…):
Exemplo:
select arquivo assign to (…)
organization is indexed
access mode is random
record key is chave1
alternate key is chave2 with duplicates
22.
Processamento de arquivos indexados em modo dinâmico (ACCESS MODE IS DYNAMIC, START, READ NEXT…):
Exemplo:
start ARQUIVO key not less than CHAVE1
read ARQUIVO next (…)
23.
Uso de funções intrínsecas:
Exemplo:
move function CURRENT-DATE to WT-DT-SISTEMA
24.
Codificação de funções (FUNCTION-ID):
Exemplo:
identification division.
function-id. FATORIAL.
(…)
procedure division using by reference NUMERO returning FATORIAL.
25.
Codificação de programas em modo "free format":
Exemplo:
identification division.
program-id. gtc001.
*> Esta e’ uma linha de comentario
environment division.
26.
Variáveis de nível 78, 88, 66…
Exemplo:
01 wt-st-cra0201 pic x(002) value spaces.
88 cra0201-leitura-ok value “00”.
88 cra0201-eof value “10”.
27.
Conhecer recursos obsoletos ou não recomendados (GO TO DEPENDING ON, ALTER, SECTIONS, DECLARATIVES…):
Exemplo:
alter PARAGRAFO1 to proceed to PARAGRAFO2
28.
Modificadores de referência:
Exemplo:
move CAMPO-ORIGEM(1:5) to CAMPO-DESTINO
move OUTRO-CAMPO-ORIGEM(1:WT-TAMANHO) to OUTRO-CAMPO-DESTINO
E é só isso…
Agora é só clicar nesse botão de Submit aí embaixo para enviar as suas respostas…
Gostaria de fazer este curso para melhorar meus conhecimentos do cobol mainframe
Faz muito tempo que não programo, principalmente o COBOL.
Mas já tive muita intimidade com a linguagem que ensinava na formação de programadores mainframe em um grande banco em SP.