You are on page 1of 36

A Tomada de Decisões - Condições

Estrutura de Controle
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 1
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 2
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 3
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 4
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 5
Introdução
• Oque é uma condição?
– Cláusula, requisito, circunstancia.
• Oque é uma decisão?
– Resolução tomada após a discussão ou exame prévio.
Dicionário Priberam da Língua Portuguesa [consultado em 06-05-2014].
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 6
Introdução
• Uma condição pode representar vários significados por exemplo:
– Exigência: Só vou se você for.
– Estado em que alguém se encontra: estar boa ou má condição física.
– Estado social: Uma pessoa de condição social elevada.
– Estado civil: Solteiro, casado, viúvo.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 7
Introdução
• Como elaboramos condições?
– Acontecimento de um fato ou ação, consequências relacionadas ao acontecido.
• Existe alguma palavra que indica condição?
– SE...
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 8
“...Só dizer sim ou não
Mas você adora um se...”
Djavan, Se.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 9
Exemplos
• Se você não dormi cedo, perdera o horário.
• Se não estudar, perdera na prova.
• Se não chover, irei a praia.
• Se tiver dinheiro, irei a festa.
• Se...
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 10
Real x Computacional
A computação não difere da realidade, nela também utilizamos as
condições, também utilizamos o se, apenas com uma notação diferente,
através de expressões condicionais.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 11
Expressões Condicionais
• São expressões em sua grande maioria de comparação que envolvem
uma variável e operadores (relacionais e/ou lógicos). Resultam em uma
resposta verdadeira ou falsa.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 12
Operadores Relacionais
• São utilizados para verificar o estado de uma determinada variável
quanto verdadeiro ou falso.
Operador Significado
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
= Igual a
<> Diferente de
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 13
Operadores Relacionais
Tendo as variáveis inteiras x, y, z, e w, onde:
x = 4, y = -1, z = 5, w = 4
Analise as expressões:
– x > y
– y >= 5
– w = x
– x >= z +y
– y <> z
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 14
Verdadeiro
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Operadores Lógicos
• Em alguns casos é necessário trabalhar com o relacionamento de duas
ou mais condições ao mesmo tempo na mesma instrução se, efetuando
desta forma testes múltiplos. Para estes casos é necessário trabalhar
com operadores lógicos são eles:
– e
– ou
– não
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 15
Operador lógico: e
• É utilizado quando duas ou mais condições necessitam ser verdadeiras.
Tabela Verdade
Condição 1 Condição 2 Resultado
Falsa Falsa Falso
Verdadeira Falsa Falso
Falsa Verdadeira Falso
Verdadeira Verdadeira Verdadeiro
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 16
Operador Lógico: ou
• Utilizado quando pelo menos uma das afirmações é necessita ser
verdadeira.
Tabela Verdade
Condição 1 Condição 2 Resultado
Falsa Falsa Falso
Verdadeira Falsa Verdadeiro
Falsa Verdadeira Verdadeiro
Verdadeira Verdadeira Verdadeiro
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 17
Operador Lógico: nao
• Utilizado quando é necessário realizar a inversão, negação de um
resultado
Tabela Verdade
Condição 1 Resultado
Falsa Verdadeiro
Verdadeira Falso
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 18
Operadores Lógicos
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 19
Tendo as variáveis inteiras x, y, z, e w, onde:
x = 10, y = 4, z = 7, w = 6
Analise as expressões:
– x >= y e z > w
– y = z ou x >=d
– z > x + y e (nao(y < w))
– z > x + y ou x <> y + w
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br
Verdadeiro
Verdadeiro
Falso
Falso
Estruturas de Condições
• Na computação podemos fazer três tipos de estruturas
condicionais:
– Condicional Simples;
– Condicional Composto;
– Condicional Encadeadas
– E podemos fazer a combinação de condições.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 20
Condicional Simples
• Com a estrutura condicional é possível determinar qual ação será executada
com base no resultado de uma expressão condicional.
• Representação
se (<expressão>) então
comando 1
comando 2
fimse
Comando 3
Comando 4
• Uma expressão pode ser verdadeira ou falsa.
• Os comandos 1 e 2, só serão executados se a expressão for verdadeira, já a 3
e a 4 serão executadas independente do resultado da expressão.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 21
Exemplo
• Faça um programa que leia dois valores numéricos, efetue a adição e
apresente o seu resultado caso o valor somado seja maior que 10.
– Dados de entrada: 2 valores genéricos (x, y)
– Processamento: Somar os valores (z), e verificar se a soma é maior que 10.
– Saída: O valor da soma (z).
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 22
Exemplo
• E meu algoritmo é:
1. Ler dois valores incógnitos (variáveis x, y);
2. Somar os valores de x e y, atribuindo o valor da soma a uma variável z.
3. Apresentar o valor de z, se seu valor for maior que 10.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 23
Exemplo
algoritmo “soma_numero”
var
x:inteiro
y:inteiro
z:inteiro
inicio
escreva(“Digite o primeiro numero: “)
leia(x)
escreva(“Digite o segundo numero: “)
leia(y)
z <- x + y
se z > 10 entao
escreva(“O numero é maior que 10 !” )
fimse
escreva(“O numero não é maior que 10!”)
fimalgoritmo
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 24
Condicional Composto
• Representação
se (<expressão>) entao
comando1
comando2
senao
comando3
fimse
Comando4
Comando 5
• Se a expressão for verdadeira, os
comandos 1 e 2 serão executados, caso
contrário, a expressão é falsa e o
comando 3 será executado. E de
qualquer maneira os comandos 4 e 5
serão executados.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 25
Exemplo
• Faça um programa que leia dois valores numéricos, e efetue a adição.
Caso o valor somado seja maior ou igual a 10, deverá apresentar o valor
somado a ele 5, caso contrario apresente o valor subtraindo 7.
– Dados de entrada: dois valores numéricos.
– Processamento: somar os valores, verificar se é maior ou menor que 10. Caso
maior somar 5, caso menor subtrair 7.
– Saída: Mostrar o valor final.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 26
Exemplo
1. Ler dois valores (variáveis x, y);
2. Efetuar a soma dos valore x e y, implicando no valor z.
3. Verificar se x é maior igual a 10, caso verdadeiro, calcule r = z+5, senão
calcule r = z-7;
4. Mostrar o valor de r.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 27
Exemplo
algoritmo “soma_numeros"
var
x:inteiro
y:inteiro
z:inteiro
r:inteiro
inicio
leia(x)
leia(y)
z <- x + y
se z >= 10 entao
r <- z + 5
senao
r <- z - 7
fimse
escreva ("O valor é: ", r)
fimalgoritmo
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 28
Combinação de Condições
Escreva um algoritmo que informe se numero fora do intervalo 10 e 20.
se (numero < 10) entao
escreva(“Número fora do intervalo!”)
fimse
se (numero > 20) entao
escreva(“Número fora do intervalo!”)
fimse
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 29
se (numero < 10 ou numero > 20) entao
escreva(“Número fora do intervalo!”)
fimse
Combinação de Condições
Escreva um algoritmo que informe se numero esta entre 10 e 20.
se (numero >= 10) entao
se (numero <= 20) entao
escreva(“Número dentro do intervalo!”)
fimse
fimse
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 30
se (numero >= 10 e numero <= 20) entao
escreva(“Número dentro do intervalo!”)
fimse
Condicionais Encadeados
• Existem casos em que é necessário estabelecer verificação de condições
sucessivas em que uma determinada ação poderá ser executada se um
conjunto anterior for satisfatório. Sendo executada ela ainda poderá
estabelecer novas condições. Isto significa utilizar uma condição dentro
da outra condição, podendo possuir vários níveis de condição, sendo
chamadas de encadeamentos.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 31
Condicionais Encadeados
• Representação
se (<expressão>) entao
comando1
senao
se (< expressão >) entao
comando2
senao
comando3
fimse
fimse
• Na estrutura condicional composta
aninhada cada teste só é
executado se o anterior houver
falhado.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 32
Exemplo
Faça um programa que efetue o calculo do reajuste do salario de um
funcionário. Considere que o funcionário devera receber um reajuste de
15% caso seu salario seja menor que 500. Se o salario for maior ou igual a
500, mas menor ou igual 1000, seu reajuste deverá ser de 10%, caso seja
ainda maior que 1000, o reajuste deverá ser de 5%.
– Entrada: Valor do salário.
– Processamento: Ajuste do salario de acordo com o seu valor.
– Saída: Valor com ajuste.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 33
Exemplo
• Perceba que o problema estabelece três condições para calcular o
reajuste do salário do funcionário, sendo:
– Salário < 500, reajuste de 15%
– Salário >= 500, reajuste, mas <= 1000, reajuste de 10%.
– Salário > 1000, reajuste de 5%
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 34
Exemplo
1. Definir uma variável para o salário reajustado: novo_salario;
2. Ler um valor para a variável salário.
3. Verificar se o valor de salario < 500, se verdadeiro reajustar em 15%;
4. Verificar se o valor do salario <= 1000, se verdadeiro reajustar em 10%;
5. Verificar se o valor do salario > 1000, se verdadeiro reajustar em 5%;
6. Apresentar o valor reajustado, atribuindo a variável novo_salario.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 35
Exemplo
algoritmo "ajuste_salario"
var
salario:inteiro
novo_salario:real
inicio
leia(salario)
se (salario < 500) entao
novo_salario <- salario + (salario * 0.15)
senao
se (salario <= 1000) entao
novo_salario <- salario + (salario * 0.10)
senao
novo_salario <- salario + (salario * 0.05)
fimse
fimse
escreva("O salario passou de: ", salario, "
para: ", novo_salario)
fimalgoritmo
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 36