Buscar

Aula_Mainframe_03


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 77 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 77 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 77 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Programação para 
Mainframe
Aula 03
Prof. Claudio Benossi
Curso de Análise de Desenvolvimento de Sistemas
1.
Unidade
Operadores aritméticos e 
Estrutura de Controle
Introdução ao COBOL
Para criação dos exemplos aplicados a aula de hoje vamos
usar o OpenCobolIDE.
https://launchpad.net/cobcide/+download
3
https://launchpad.net/cobcide/+download
Introdução ao COBOL
O OpenCobolIDE
4
Introdução ao COBOL
Vamos colocar o nome
do nosso primeoro
programa como
PROGRAMA_EX02 e
selecionar o local
onde deve ser salvo.
5
6
Introdução ao COBOL
O nosso OpenCobolIDE já traz as 4 divisões, vamos ajustando o
nosso código durante a nossa aula.
7
Introdução ao COBOL
Vamos fazer a
identificação do
nosso programa.
8
Introdução ao COBOL
Agora vamos criar as
nossas variáveis.
WS-NUM1, WS-NUM2,
WS-RESUL sendo
variáveis do tipo
numérica com 9 casas
decimais e WS-OP como
variável do tipo
alfanumérica com uma
posição.
9
Introdução ao COBOL
Comando INITIALISE
Efetua a inicialização (atribuição de valores) de uma variável
(ou um conjunto de variáveis), de acordo com o formato da
cada uma.
Variável numérica é inicializada com zero e variável
alfanumérica ou alfabética é inicializada com espaços
(brancos).
10
Introdução ao COBOL
Comando INITIALISE
Se a variável
especificada for um
item de grupo, todos os
seus subitens serão
inicializados de acordo
com seus formatos.
11
Introdução ao COBOL
Comando INITIALISE
Se a variável
especificada for um
item de grupo, todos os
seus subitens serão
inicializados de acordo
com seus formatos.
12
Comando DISPLAY
Exibição de valores em uma tela ou em um arquivo.
Normalmente é o dispositivo assinalado pelo ddname SYSOUT
no JOB de execução:
//SYSOUT DD SYSOUT=*
Formato:
DISPLAY [identificador-1 | literal-1] ...
13
Comando DISPLAY
Exemplos:
14
Introdução ao COBOL
Comando INITIALISE
Se a variável
especificada for um
item de grupo, todos os
seus subitens serão
inicializados de acordo
com seus formatos.
15
Introdução ao COBOL
Comando ACCEPT
Esta declaração torna disponíveis os dados fornecidos pelo
sistema operacional ou fornecido diretamente via teclado pelo
Usuário.
É provável que o Identifier seja uma variável definida na
WORKING-STORAGE SECTION.
16
Introdução ao COBOL
Comando ACCEPT
A declaração ACCEPT transfere dados para um identificador
especificado.
Não há nenhuma verificação de edição ou erro dos dados de
entrada.
17
Introdução ao COBOL
Comando ACCEPT
Usado para receber informações através da entrada padrão e
de registrador especial do COBOL.
Entrada padrão: informação é transferida diretamente do
ddname SYSIN no JCL para a área de memória identificador-1.
Registrador especial do COBOL: informação é transferida do
registrador para a área de memória identificador-1.
18
Introdução ao COBOL
Comando ACCEPT
Formato:
[SYSIN ]
[DATE ] [YYYYMMDD]
ACCEPT identificador-1 [FROM [DAY ] [YYYYDDD]
[DAY-OF-WEEK]
[TIME ]
Quando a opção FROM é omitida o padrão FROM SYSIN é assumido.
19
Introdução ao COBOL
20
Introdução ao COBOL
Vamos recuperar as
informações recebidas
via teclado e armazenar
nas variáveis. 21
Introdução ao COBOL
Vamos repetir o
processo para solicitar
os valores de WS-NUM1
e WS-NUM2. 22
Introdução ao COBOL
Agora vamos fazer as operações básicas de Adição, Subtração,
Multiplicação e Divisão no nosso programa e para isso vamos
usar a estrutura de controle e decisão IF.
23
Comando IF
Efetua teste de condições especificadas, e efetua os desvios
necessários de acordo com o resultado.
Formato:
IF condição
instruções (para condição verdadeira)
ELSE
instruções (para condição não verdadeira)]
END–IF
24
Comando IF
O END-IF indica o fim da especificação da instrução, ou seja, as
instruções que estão após o END-IF são executadas tanto para
os casos de condição satisfeita quanto para os casos de
condição não satisfeita.
O ponto ‘.’ pode ser usado em substituição ao END-IF para
indicar o fim da especificação da instrução IF, mas deve ser
evitado pois o END-IF é a forma adotada para manter a
aderência com lógica estruturada.
25
Operadores Relacionais
26
DESCRIÇÃO SÍMBOLO NOTAÇÃO COBOL
Igual = EQUAL
Diferente != ou <> NOT EQUAL
Maior que > GREATER
Menor que < LESS
Maior ou igual a >= NOT LESS
Menor ou igual a <= NOT GREATER
Operadores Lógicos 
27
OPERADOR DESCRIÇÃO
AND
Se os dos operandos ou expressões são verdadeiros, o 
resultado será verdadeiro. Se um deles é falso, o resultado 
será falso.
OR
Se um dos dois operandos é verdadeiro, o resultado será 
verdadeiro. Se os dois operandos são falsos, o resultado 
será falso
NOT
Inverte o valor de um operando. Se o operando é 
verdadeiro o resultado será falso. Se o operando é falso o 
resultado será verdadeiro.
Testes de Categorias
28
CATEGORIA NOTAÇÃO COBOL
Teste de Sinal
IS POSITIVE
IS NEGATIVE
IS ZERO
Teste de Classe
IS MUMERIC
IS ALPHABETIC
Exemplos
29
Exemplos
30
Exemplos
31
Introdução ao COBOL
Agora que já entendemos como funciona a estrutura de
controle IF, vamos voltar ao nosso programa, onde já
recebemos as informações via teclado e armazenamos nas
variáveis (WS-NUM1, WS-NUM2 E WS-OP).
Precisamos verificar qual será a operação selecionado pelo
usuário (WS-OP) que pode ser + (Adição), - (Subtração), *
(Multiplicação) ou / (Divisão).
32
Introdução ao COBOL
Aqui usamos estrutura
simples do IF os
comandos COMPUTE e
DISPLAY como bloco de
instruções.
33
Comando COMPUTE
A instrução COMPUTE usa símbolos em vez de comandos
aritméticos.
A principal vantagem do comando COMPUTE é que pode
realizar várias operações aritméticas com uma única instrução.
A instrução COMPUTE atribui o valor de uma expressão
aritmética de um ou mais itens de dados.
34
Comando COMPUTE
Ele permite que você combine operações aritméticas sem as
restrições na recepção de itens de dados que as regras para as
declarações ADD, SUBTRACT, MULTIPLY e DIVIDE impõem.
Quando você precisa combinar operações aritméticas, usar a
instrução COMPUTE pode ser mais eficiente do que escrever
uma série de declarações aritméticas separadas.
35
Comando COMPUTE
Símbolos usados em uma instrução COMPUTE:
36
SÍMBOLO SIGNIFICADO
+ ADD
- SUBTRACT
* MULTIPLY
/ DIVIDE
** Exponenciação (não há comando correspondente no COBOL)
Introdução ao COBOL
Já podemos
testar nosso
programa, para
verificar se ele
está realizando a
soma entre os
dois valores.
Primeiro vamos
compilar.
37
Introdução ao COBOL
Se estiver tudo
OK vamos
executar.
38
Introdução ao COBOL
39
Introdução ao COBOL
40
Introdução ao COBOL
OK até aqui funcionou!
41
Introdução ao COBOL
Falta fazer as outras operações – (Subtração), * (Multiplicação)
e / (Divisão).
42
Introdução ao COBOL
Conferindo:
43
Introdução ao COBOL
Agora vamos melhorar nosso programa com casas decimais e
uma mascara de exibição para os valores.
1º Passo alterar as nossas variáveis.
44
Introdução ao COBOL
Na linha 17 aparece como erro, e para corrigir isso, vamos
modificar do padrão americano (99,999.99) para nosso padrão
(99.999,00).
45
Introdução ao COBOL
Para resolver esse
problema vamos na
ENVIRONMENT DIVISION
na CONFIGURATION
SECTION e vamos criar um
item de nomes especiais.
46
Introdução ao COBOL
Após fazer essa alteração
a indicação de erro não
existe mais.
47
Introdução ao COBOL
Agora vamos usar o comando MOVE para transferir o valor da
variável WS-RESUL para a variável WS-MASCARA (que já tem o
formato correto) e pedimos agora para exibir a variável WS-
MASCARA. 48
Introdução ao COBOL
Conferindo o resultado!
49
Introdução ao COBOL
Vamos fazer outro teste, desta vez vamos fazer 823,50 –
1257,48
Note que o resultado não aparece como negativo.
Vamos corrigir isso!
50
Introdução ao COBOL
Para corrigir o problema de não exibir os valores negativos,
vamos sinalizar os números, e para isso vamos fazer alguns
ajustes na declaração de variáveis. Inserir o S nas variáveis
numéricas e sinal de menos (-) namascara. 51
Introdução ao COBOL
Vamos testar novamente com os mesmos valores:
823,50 – 1257,48
52
Introdução ao COBOL
Para esse programa usamos o COMPUTE para realizar os
cálculos, porém podemos fazer de outra maneira com os
Comandos aritméticos.
53
Introdução ao COBOL
As instruções COBOL para efetuar cálculos aritméticos são:
▹ ADD somar
▹ SUBTRACT subtrair
▹ MULTIPLY multiplicar
▹ DIVIDE dividir
▹ COMPUTE calcular
Obs.: Utilizar, preferencialmente, variáveis numéricas compactadas, como operando
das operações aritméticas.
54
Introdução ao COBOL
Para obter resultados arredondados, a opção ROUNDED pode
ser especificada, após o nome de dados resultante, em
qualquer instrução aritmética.
O arredondamento é clássico: valores menores que 5 são
truncados e os maiores são arredondados para cima.
Exemplo: ADD VALOR1-E TO WRK-AC-VALOR1 ROUNDED
55
Introdução ao COBOL
Quando a variável que recebe o resultado da operação
aritmética não tem tamanho suficiente para conter o
resultado, o COBOL trunca o resultado (o valor perde
algarismos à esquerda) e não emite avisos ou código de erro.
Para detectar esta situação é necessário codificar na instrução
aritmética a clausula ON SIZE ERROR, na qual é possível tratar
a ocorrência, conforme especificação.
56
Introdução ao COBOL
Exemplo com ON SIZE ERROR.
57
Comando ADD
Acumula dois ou mais operandos numéricos e armazena
resultados.
Formato:
ADD { identificador-1 ... literal-1 ...} TO | GIVING {
identificador-de-resultado ...}
58
Comando ADD
Regras do comando ADD
1. Todos os literais e campos que são parte da adição devem
ser numéricos. Após a palavra GIVING, contudo, o campo pode
ser um item de relatório.
2. O campo identificador-de-resultado, após TO ou GIVING,
deve ser um nome de dados e não um literal.
59
Comando ADD
Regras do comando ADD
3. Pelo menos dois operandos deverão anteceder a palavra
GIVING.
4. Ao usar TO, o conteúdo inicial do identificador-de-resultado,
numérico, é somado junto ao dos outros campos
(identificador-1 ... literal-1...).
60
Comando ADD
Regras do comando ADD
5. Ao usar o formato GIVING, o campo identificador-de-
resultado receberá a soma, mas seu conteúdo inicial não será
parte da instrução ADD e pode ser um campo numérico ou um
item de relatório.
61
Comando ADD
62
Comando SUBTRAC
Subtrai um ou mais operandos numéricos e armazena
resultados.
Formato 1:
SUBTRACT { identificador-1 ... literal-1 ...}
FROM identificador-de-resultado …
Formato 2:
SUBTRACT { identificador-1 ... literal-1 ...}
FROM identificador-2 literal-2
GIVING identificador-de-resultado ...
63
Comando SUBTRAC
Regras do comando SUBTRACT
1. Observar a colocação das reticências (...) no Formato 1. O
primeiro conjunto depois do identificador-1 significa que dois
ou mais operandos podem ser subtraídos do identificador-2.
Além disso, os operandos podem ser subtraídos do
identificador-de-resultado-1, do identificador-resultado-2, e
assim por diante.
64
Comando SUBTRAC
Regras do comando SUBTRACT
2. O Formato 2 aceita qualquer número ou identificadores
imediatamente após a palavra SUBTRACT ou da palavra
GIVING, mas depois da palavra FROM é permitido um único
identificador ou literal.
3. Todos os literais e campos que são parte da instrução
SUBTRACT devem ser numéricos. Depois da palavra GIVING,
contudo, o campo pode ser um item de relatório.
65
Comando SUBTRAC
Regras do comando SUBTRACT
4. O campo identificador-de-resultado, após FROM ou GIVING,
deve ser um nome de dados, e não um literal.
5. Com a opção GIVING, o campo identificador-de-resultado
receberá o resultado da subtração, mas seu conteúdo inicial
não será parte da instrução SUBTRACT. Ele pode ser tanto um
campo numérico como um item de relatório.
66
Comando SUBTRAC
67
Comando DIVIDE
Efetua uma divisão com o quociente como resultado e, se indicado, informa o resto.
Formato 1:
DIVIDE {(divisor) identificador-1 literal-1} INTO
{(dividendo) identificador-2 literal-2}
GIVING identificador-de-resultado …
Formato 2:
DIVIDE {(dividendo) identificador-1 literal-1} BY
{(divisor) identificador-2 literal-2}
GIVING identificador-de-resultado ...
[ REMAINDER identificador-de-resto ]
68
Comando DIVIDE
Regras do comando DIVIDE
1. Observar que GIVING é opcional com INTO, mas obrigatório
com BY.
2. No formato 1, quando a opção GIVING não é utilizada o
resultado da divisão é colocado dentro do indentificador-2
logo após a palavra INTO.
69
Comando DIVIDE
Regras do comando DIVIDE
3. O Formato 2 com a opção REMAINDER é utilizado quando
se faz necessário guardar o resto da divisão em outro
identificador.
70
Comando DIVIDE
71
Comando MULTIPLY
Comando MULTIPLY Efetua a multiplicação entre variáveis.
Formato:
MULTIPLY {identificador-1 literal-1} BY
{identificador-2 literal-2}
[ GIVING identificador-de-resultado ...]
72
Comando MULTIPLY
Regras do comando MULTIPLY
1. Sem a opção GIVING o indentificador-1 ou literal será
multiplicado pelo indentificador-2 (não usar literal) e o
resultado ficará no identificador-2.
2. Com a opção GIVING o indentificador-1 ou literal será
multiplicado pelo indentificador-2 ou literal e o resultado será
armazenado em todos os identificadores-de-resultado após
GIVING.
73
Comando MULTIPLY
74
Exercício
Vamos elaborar um sistema para calcular o IMC, onde o IMC é
realizado com o seguinte calculo:
IMC = peso / (altura*altura)
Efetuar a classificação utilizando
a tabela ao lado:
75
IMC Classificação
< 18.5 Desnutrido
18.5 – 24.9 Adequado
25.0 – 29.9 Pré-obeso
30.0 – 34.9 Obesidade grau I
35.0 – 39.9 Obesidade grau II
"Nossos fracassos, 
às vezes, 
são mais frutíferos 
do que os êxitos"
Henry Ford
Obrigado!
Se precisar …
Prof. Claudio Benossi
claudio.benossi@fatec.sp.gov.br