Você está na página 1de 50

Analise e desenvolvimento de

sistemas
PROJETO II

3. Programação com Desvio.

André Duarte 1
Analise e desenvolvimento de
sistemas

Introdução
PROJETO II

•Este Módulo apresenta os detalhes sobre o uso de


tomadas de decisão em programação no
estabelecimento de processamento lógico. São
apresentados os conceitos de condição, decisão,
operadores relacionais, operadores lógicos, decisão
simples, decisão composta, decisão seletiva e
divisibilidade.

2
Analise e desenvolvimento de
sistemas

3.1 Decisões, Condições e operadores relacionais


PROJETO II

•Para um programa de computador tomar decisões, é


necessário criarmos para ele uma condição. Assim, para tomar
uma decisão, é necessário existir uma condição. Uma condição
pode produzir uma de duas respostas: pode ser uma resposta
verdadeira ou uma resposta falsa.

•A condição, por sua vez, do ponto de vista condicional, é a


definição de relação lógica entre variáveis versus variáveis ou
variáveis versus constantes definidas com o uso de operadores
relacionais. A relação lógica existente entre os elementos de
uma condição é conseguida com a utilização dos operadores
relacionais , de acordo com o que mostramos na Tabela 3.1. 3
Analise e desenvolvimento de
sistemas

3.1 Decisões, Condições e operadores relacionais


PROJETO II

São condições válidas as seguintes estruturas relacionais: A == B, A ! = B,


A > B, A < B, A >= B, A <= B ou A == 5, A != 5, A > 5, A < 5, A >= 5, A
4
<= 5.
Analise e desenvolvimento de
sistemas

3.1 Decisões, Condições e operadores relacionais


PROJETO II

•Fique de olho!
•Você sabia que a palavra informática significa informação
automatizada, e que o termo está associado à ação de
processar dados?

5
Analise e desenvolvimento de
sistemas

3.1 Decisões, Condições e operadores relacionais


PROJETO II

•A partir do momento em que temos uma condição, podemos,


em um programa, estabelecer ações de desvios condicionais.
Os desvios condicionais estão associados à utilização de
decisões em um programa de computador. Uma decisão a ser
tomada, como já comentado, pode ser verdadeira ou falsa. Se
verdadeira, determinada ação pode ser executada; se falsa,
outra ação pode ou não ser executada. Portanto, um desvio
condicional pode ser simples ou composto.

6
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

•Um desvio condicional será simples quando temos uma


condição que desvia a execução do programa caso o resultado
lógico avaliado de certa condição seja verdadeiro. Se o
resultado lógico avaliado for falso, nada acontecerá, e o
programa simplesmente segue o seu fluxo de execução.

•Um desvio condicional simples é definido, nas linguagens de


programação C e C++, e realizado por meio da instrução if ,
que possui a seguinte sintaxe:

7
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

•if <(condição )>


•{
<instrução 1 executada quando condição for
verdadeira>;
<instrução 2 executada quando condição for
verdadeira>;
<instrução N executada quando condição for
verdadeira>;
•}
•<instrução executada após condição ser
verdadeira e/ou falsa>;
8
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

•Exercício resolvido
•Elaborar um programa que leia dois valores numéricos
inteiros, some-os e apresente o resultado, caso o valor somado
seja maior que 10.

•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex01.java.

•Codificação em Linguagem Java


9
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

10
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

•Se forem fornecidos os valores 4 e 6, nada será apresentado.


Caso sejam fornecidos os valores 5 e 7, o resultado
apresentado será 12.

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex01.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex01 para
executar e ver o resultado do programa.

11
Analise e desenvolvimento de
sistemas

3.2 Desvio condicional Simples


PROJETO II

•Após a definição dos tipos de variáveis, é solicitada a leitura


dos dois valores implicados pelas variáveis A e B. Depois, é
efetuada a adição das variáveis A e B, o que é implicado pela
variável R.

•Nesse ponto, por meio de uma condição inserida na instrução


if , o programa verifica se é possível apresentar o resultado da
adição, caso ele seja maior que 10; se não for, o programa não
apresenta absolutamente nada. Note os delimitadores { e }
que definem o bloco de ação condicional subordinado à
condição que determinamos.
12
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

•Nesse ponto, por meio de uma condição inserida na instrução


if , o programa verifica se é possível apresentar o resultado da
adição, caso ele seja maior que 10; se não for, o programa não
apresenta absolutamente nada. Note os delimitadores { e }
que definem o bloco de ação condicional subordinado
•à condição que determinamos.

13
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

14
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

•Exercício resolvido
•Elaborar um programa que faça a leitura de dois valores
numéricos do tipo inteiro e efetue a adição desses valores.
Caso o resultado obtido seja maior que 10, o programa
apresentará a mensagem “Resultado ultrapassa o valor dez.”.
Caso o resultado do valor somado não seja maior que 10, o
programa deverá apresentar a mensagem “Resultado não
ultrapassa o valor dez.”.
•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex02.java.
•Codificação em Linguagem Java 15
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

16
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex02.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex02 para
executar e ver o resultado do programa.

17
Analise e desenvolvimento de
sistemas

3.3 Desvio condicional Composto


PROJETO II

•Faça duas execuções: na primeira execução, entre valores


que, somados, gerem um resultado maior que 10, e na
segunda execução, valores que, somados, sejam no máximo
iguais a 10.

•Ao fazer um teste de execução do programa, se forem


fornecidos os valores 5 e 5, o resultado apresentado será a
mensagem “Resultado não ultrapassa o valor dez.”. Caso
sejam fornecidos os valores 5 e 7, o resultado apresentado
será a mensagem “Resultado ultrapassa o valor dez.”.

18
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

•Ao trabalharmos com grande quantidade de desvios


condicionais, podemos ter um programa de difícil
interpretação. Para auxiliar e facilitar esse tipo de
necessidade, temos a estrutura de controle com múltipla
escolha , denominada switch , cuja sintaxe é:

19
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

•em que:
» <variável> - nome da variável a ser controlada na decisão ;
» <opção> - conteúdo da variável a ser verificado;
» <operação>- execução de alguma ação específica.

•A instrução default da estrutura de seleção switch e qualquer


operação a ela associada são opcionais, não caracterizando
obrigatoriedade de uso. A instrução break tem a finalidade de
desviar o processamento para fora do comando switch. Isso é
necessário porque, após o processamento de cada case,
ocorre retorno do fluxo de ação do comando para a primeira
instrução após sua chamada, que nesse caso será break. 20
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

•A variável usada numa estrutura switch para controlar a ação


desse tipo de desvio na linguagem Java pode operar com
variáveis do tipo inteiro ou cadeia.

•Exercício resolvido
•Elaborar um programa que solicite a entrada de um valor
numérico inteiro entre 1 e 12 e apresente o nome do mês por
extenso.
•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex03.java.
21
•Codificação em Linguagem Java
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

22
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex03.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex03 para
executar e ver o resultado do programa.

23
Analise e desenvolvimento de
sistemas

3.4 Desvio condicional Seletivo


PROJETO II

•É muito importante considerar que, do ponto de vista


operacional de funcionalidade de um computador, o uso da
instrução switch prevê apenas condições com operador
relacional do tipo “igual a”. Em situações operacionais que
envolvam outras formas de relações lógicas, deve-se fazer
uso da instrução if na forma sequencial ou encadeada.

24
Analise e desenvolvimento de
sistemas

3.5 Operadores Lógicos


PROJETO II

•Em algumas ocasiões, é necessário trabalhar com o


relacionamento de duas ou mais condições ao mesmo tempo
e na mesma instrução if, para que seja tomada uma única
decisão , realizando testes múltiplos. Para esses casos, usamos
operadores lógicos , com: && (e - operador de conjunção),
•|| (ou - operador de disjunção inclusiva) e ! (não - operador
de negação).

25
Analise e desenvolvimento de
sistemas

3.5 Operadores Lógicos


PROJETO II

•Os operadores lógicos && e || permitem mais de uma


condição para a tomada de uma única decisão. Já o operador
lógico ! tem por finalidade a negação do estado lógico de uma
condição. Para usar adequadamente os operadores lógicos em
expressões lógicas, é necessário levarmos em consideração a
ordem de precedência. A Tabela 3.2 mostra a precedência de
operadores lógicos.

26
Analise e desenvolvimento de
sistemas

3.5 Operadores Lógicos


PROJETO II

27
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção


PROJETO II

•O operador lógico de conjunção && é utilizado quando dois


ou mais relacionamentos lógicos de uma condição são
verdadeiros. Veja a Tabela 3.3.

28
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção


PROJETO II

•O operador && faz com que determinada operação seja


executada somente se todas as condições mencionadas forem
simultaneamente verdadeiras, gerando, assim, um resultado
lógico verdadeiro.

29
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção


PROJETO II

•Exercício resolvido
•Elaborar um programa que, com a utilização do operador de
conjunção and, efetue a leitura de um valor numérico inteiro
representado pela variável NUMERO e apresente mensagem
informando se o valor está ou não entre os valores de 20 a 90.
Lembre-se de que qualquer valor fornecido fora da faixa
definida apresenta a mensagem “O valor não está entre 20 e
90”, caso contrário o programa deverá apresentar a
mensagem “O valor está entre 20 e 90”

30
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção


PROJETO II

•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex04.java.
•Codificação em Linguagem Java

31
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção


PROJETO II

32
Analise e desenvolvimento de
sistemas

3.5.1 Operador Lógico de Conjunção(parou aqui


PROJETO II

28/04)
•Saia do editor de texto e, na linha de comando, escreva a
chamada do compilador Java com a sintaxe javac
Cap03_Ex04.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex04 para
executar e ver o resultado do programa.

33
Analise e desenvolvimento de
sistemas

3.5.2 Operador Lógico de Disjunção


PROJETO II

•O operador lógico de disjunção inclusiva || é utilizado


quando pelo menos um dos relacionamentos lógicos de uma
condição é verdadeiro. Veja a Tabela 3.4.

34
Analise e desenvolvimento de
sistemas

3.5.2 Operador Lógico de Disjunção


PROJETO II

•O operador || faz com que uma operação seja executada se


pelo menos uma das condições mencionadas gerar um
resultado lógico verdadeiro.

35
Analise e desenvolvimento de
sistemas

3.5.2 Operador Lógico de Disjunção


PROJETO II

•Exercício resolvido
•Elaborar um programa que efetue a leitura de um valor
numérico inteiro referente aos códigos 1, 2 ou 3 e apresente o
valor do código por extenso. Qualquer outro valor deve
apresentar a mensagem “Código inválido”.

•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
•nome Cap03_Ex05.java.
•Codificação em Linguagem Java 36
Analise e desenvolvimento de
sistemas

3.5.2 Operador Lógico de Disjunção


PROJETO II

37
Analise e desenvolvimento de
sistemas

3.5.3 Operador Lógico de Negação


PROJETO II

•O operador lógico de negação ! é utilizado quando é


necessário estabelecer que uma condição deve ser não
verdadeira ou não falsa. O operador ! inverte o estado lógico
de uma condição. Veja a Tabela 3.5.

•O operador ! executa determinada operação, invertendo o


resultado lógico da condição .
38
Analise e desenvolvimento de
sistemas

3.5.3 Operador Lógico de Negação


PROJETO II

•Exercício resolvido
•Elaborar um programa que efetue a leitura de um valor
numérico inteiro e apresente o resultado caso este não seja
maior ou igual a 3.

•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex06.java.
•Codificação em Linguagem Java

39
Analise e desenvolvimento de
sistemas

3.5.3 Operador Lógico de Negação


PROJETO II

40
Analise e desenvolvimento de
sistemas

3.5.3 Operador Lógico de Negação


PROJETO II

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex06.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex06 para
executar e ver o resultado do programa.

41
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•Divisibilidade é a qualidade do que é divisível. Nesse


contexto, dois conceitos devem ser conhecidos e entendidos
por nós, programadores de computador: múltiplos e divisores
de números naturais. Entende-se por número natural um valor
numérico que seja inteiro e positivo.

•Múltiplos são os resultados obtidos da multiplicação de dois


números naturais, enquanto divisores são números que
dividem outros números com o objetivo de gerar um resultado
exato de divisão, ou seja, obter resto de divisão sempre zero.
Quando o resto de uma divisão de números naturais é igual a
zero, tem-se divisibilidade, ou seja, resultado de divisão exata.42
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•A linguagem Java possui como operador aritmético para


auxiliar o cálculo de divisibilidade o símbolo % (porcentagem).
Usamos esse operador aritmético quando precisamos calcular
o valor do resto de uma divisão de valores inteiros.

•A operação de divisibilidade usada na linguagem Java a partir


do operador aritmético % é baseada em uma fórmula
matemática documentada pelo professor Knuth em seu livro
The Art of Computer Programming como sendo:

43
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•A incógnita r representa o resto da divisão, a incógnita a


representa o dividendo e a incógnita n, o divisor. O símbolo
que circunda a divisão chama-se piso e significa considerar na
divisão apenas a parte inteira do valor do quociente. Há
também o símbolo teto, quando se deve considerar a parte
inteira da divisão somada de mais uma unidade. Veja:
44
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•[x] Parte inteira superior


•[x ]Parte inteira inferior

•Para saber mais, consulte o livro:

•KNUTH, D. E.
•The Art of Computer Programming: Fundamental Algorithms.
Vol. 1
•Indianapolis, Indiana: Addison-Wesley
•Ano de publicação: 1972.
45
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•Exercício resolvido
•Elaborar um programa que leia um valor numérico inteiro e
apresente esse valor caso seja este divisível por 4 e 5. Não
sendo divisível por 4 e 5, o programa deve apresentar a
mensagem “Valor não é divisível por 4 e 5”.

•Procedimentos operacionais
•No seu editor de textos, escreva o programa e grave-o com o
nome Cap03_Ex07.java.

•Codificação em Linguagem Java


46
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

47
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex07.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex07 para
executar e ver o resultado do programa.

48
Analise e desenvolvimento de
sistemas

3.6 Divisibilidade
PROJETO II

•Saia do editor de texto e, na linha de comando, escreva a


chamada do compilador Java com a sintaxe javac
Cap03_Ex07.java. Se não houver nenhum erro de sintaxe, a
linha de comando apresentará o cursor piscando ao lado do
prompt. Nesse momento, use a sintaxe java Cap03_Ex07 para
executar e ver o resultado do programa.

49
Analise e desenvolvimento de
sistemas

Conclusão
PROJETO II

•Neste Módulo, foram apresentados os detalhes sobre


condição, decisão, operadores relacionais, operadores lógicos,
decisão simples, decisão composta, decisão seletiva e
divisibilidade.

50

Você também pode gostar