TSO
opçao 2 tso - edição
biblioteca que possui cobol - SOURCE
comandos de declaração - colocados a partir da oitava coluna
Se as declarações nao começarem na oitava coluna - ERRO
parte de declaraçoes
ID DIVISION.
DATA DIVISION
WORKING-STORAGE SECTION
na Working storage são declaras ass variaveis do programa
Todas as variaveis sao globais, nao existe variavel local
As variaveis declaras como PIC 9() sao numericas
As variaveis declaras como PIC X() sao alfanumericas(letras, numeros, simbolos, espaços... )
o valor entre parenteses define o numero de digitos da variavel
comentario começa com *
* ISSO EH UM COMENTARIO
PROCEDURE DIVISION * EH TIPO O MAIN
Na procedure division os comandos começam da coluna 12 em diante.
DISPLAY * escreve string no dispositivo de saida
DISPLAY " PRIMEIRO PROGRAMA "
ACCEPT * le os dados do dispositivo e atribui a variavel a direita
ACCEPT N1.
ACCEPT OP.
EM 10:18 do video - o arquivo eh do tipo BATCH, controlado pelo JCL. JCL é o que fornece os dados de entrada e armazena os dados de saída do programa.
o TSO possui uma regua pra melhorar a visao - digite COLS na linha command para mostrar
Operador condicional -
IF OP EQUAL "+"
COMPUTE N3 = N1 + N2
DISPLAY " A SOMA DE " N1 " COM " N2 " = " N3
END-IF.
IF OP EQUAL "D"
DIVIDE N1 BY N2 GIVING N3 * N3 recebe o quociente da divisão
* se quiser o resto da divisão - REMAINING
DISPLAY " A DIVISAO DE " N1 " COM " N2 " = " N3
END-IF.
os comandos dentro do IF nao possuem ponto, pois o ponnto finalizaria o comando de controle. Neste caso somento o END-IF possui o ponto finalizador de comaando
Os comandos de execução do cobol tem q estar a partir da coluna 12.
Comando para encerrar o programa
STOP RUN.
outro programa - Faz leitura de arquivo
20:55
os arquivos utilizados são declarados na ENVIRONMENT DIVISION, INPUT-OUTPUT SECTION, FILE-CONTROL, pelo comando SELECT
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CEPS ASSING REG-CEP
ORGANIZATION IS SEQUENTIAL.
Cada arquivo eh declarado e associado a um registro, de formq eu esse registro se comporte como um buffer do arquivo.
Variaveis
A variavel de nivel 01 eh composta por variaveis de nivel superior - nesse caso do nivel 10.
DATA RECORD IS REG-CEP. * variavel para receber valores de registros de arquivo
01 REG-CEP
10 COD-CEP PIC X(08).
10 TIPO PIC X(03).
10 LOGRADOURO PIC X(40).
10 BAIRRO PIC X(29).
WORKING-STORAGE SECTION.
01 NOME-BAIRRO PIC(29) VALUE SPACES.
01 WS-FIM PIC X(1) VALUE 'N'. * Variavel p controlar fim do arquivo
* WS eh working storage- padrao p variavel de controle
Debuging -
Apos botar valor numa variavel, faça DISPLAY nela pra verificar o que esta sendo usado no momento. Caso o valor esteja errado, ja sabe que nao eh problema na logica.
comando OPEN prepara o arquivo para leitura.
o READ le um registro do arquivo e coloca as informações na estrutura de dados associada ao arquivo.
OPEN INPUT CEPS.
DISPLAY "BUSCANDO DADOS DO BAIRRO: " NOME-BAIRRO.
READ CEPS AT END MOVE 'S' TO WS-FIM.
PERFORM PROCESS-INIC THRU PROCESS-FIM UNTIL WS-FIM = 'S'. *
CLOSE CEPS.
STOP RUN.
PROCESS-INIC.
IF (BAIRRO IS EQUAL NOME-BAIRRO)
DISPLAY "CEP: " COD-CEP
DISPLAY "TIPO " TIPO
DISPLAY "LOGRADOURO " LOGRADOURO
DISPLAY "BAIRRO " BAIRRO
END-IF.
READ CEPS AT END MOVE 'S' TO WS-FIM.
PROCESS-FIM.
END PROGRAM COB08.
O comando PERFORM faz o loop
execute do bloco PROCESS-INI THRU PROCESS-FIM UNTIL
Erro comum é colocar um nome de programa no inicio
PROGRAM-ID. COB08.
END PROGRAM COB08.
Se for criar um programa do zero, recomenda-se copiar um arquivo funcionando e colar para alterar para o novo.