You are on page 1of 36

A Tomada de Decises - Condies

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
Introduo
Oque uma condio?
Clusula, requisito, circunstancia.
Oque uma deciso?
Resoluo tomada aps a discusso ou exame prvio.
Dicionrio Priberam da Lngua Portuguesa [consultado em 06-05-2014].
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 6
Introduo
Uma condio pode representar vrios significados por exemplo:
Exigncia: S vou se voc for.
Estado em que algum se encontra: estar boa ou m condio fsica.
Estado social: Uma pessoa de condio social elevada.
Estado civil: Solteiro, casado, vivo.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 7
Introduo
Como elaboramos condies?
Acontecimento de um fato ou ao, consequncias relacionadas ao acontecido.
Existe alguma palavra que indica condio?
SE...
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 8
...S dizer sim ou no
Mas voc adora um se...
Djavan, Se.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 9
Exemplos
Se voc no dormi cedo, perdera o horrio.
Se no estudar, perdera na prova.
Se no 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 computao no difere da realidade, nela tambm utilizamos as
condies, tambm utilizamos o se, apenas com uma notao diferente,
atravs de expresses condicionais.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 11
Expresses Condicionais
So expresses em sua grande maioria de comparao que envolvem
uma varivel e operadores (relacionais e/ou lgicos). Resultam em uma
resposta verdadeira ou falsa.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 12
Operadores Relacionais
So utilizados para verificar o estado de uma determinada varivel
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 variveis inteiras x, y, z, e w, onde:
x = 4, y = -1, z = 5, w = 4
Analise as expresses:
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 Lgicos
Em alguns casos necessrio trabalhar com o relacionamento de duas
ou mais condies ao mesmo tempo na mesma instruo se, efetuando
desta forma testes mltiplos. Para estes casos necessrio trabalhar
com operadores lgicos so eles:
e
ou
no
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 15
Operador lgico: e
utilizado quando duas ou mais condies necessitam ser verdadeiras.
Tabela Verdade
Condio 1 Condio 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 Lgico: ou
Utilizado quando pelo menos uma das afirmaes necessita ser
verdadeira.
Tabela Verdade
Condio 1 Condio 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 Lgico: nao
Utilizado quando necessrio realizar a inverso, negao de um
resultado
Tabela Verdade
Condio 1 Resultado
Falsa Verdadeiro
Verdadeira Falso
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 18
Operadores Lgicos
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 19
Tendo as variveis inteiras x, y, z, e w, onde:
x = 10, y = 4, z = 7, w = 6
Analise as expresses:
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 Condies
Na computao podemos fazer trs tipos de estruturas
condicionais:
Condicional Simples;
Condicional Composto;
Condicional Encadeadas
E podemos fazer a combinao de condies.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 20
Condicional Simples
Com a estrutura condicional possvel determinar qual ao ser executada
com base no resultado de uma expresso condicional.
Representao
se (<expresso>) ento
comando 1
comando 2
fimse
Comando 3
Comando 4
Uma expresso pode ser verdadeira ou falsa.
Os comandos 1 e 2, s sero executados se a expresso for verdadeira, j a 3
e a 4 sero executadas independente do resultado da expresso.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 21
Exemplo
Faa um programa que leia dois valores numricos, efetue a adio e
apresente o seu resultado caso o valor somado seja maior que 10.
Dados de entrada: 2 valores genricos (x, y)
Processamento: Somar os valores (z), e verificar se a soma maior que 10.
Sada: O valor da soma (z).
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 22
Exemplo
E meu algoritmo :
1. Ler dois valores incgnitos (variveis x, y);
2. Somar os valores de x e y, atribuindo o valor da soma a uma varivel 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 no maior que 10!)
fimalgoritmo
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 24
Condicional Composto
Representao
se (<expresso>) entao
comando1
comando2
senao
comando3
fimse
Comando4
Comando 5
Se a expresso for verdadeira, os
comandos 1 e 2 sero executados, caso
contrrio, a expresso falsa e o
comando 3 ser executado. E de
qualquer maneira os comandos 4 e 5
sero executados.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 25
Exemplo
Faa um programa que leia dois valores numricos, e efetue a adio.
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 numricos.
Processamento: somar os valores, verificar se maior ou menor que 10. Caso
maior somar 5, caso menor subtrair 7.
Sada: Mostrar o valor final.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 26
Exemplo
1. Ler dois valores (variveis 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, seno
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
Combinao de Condies
Escreva um algoritmo que informe se numero fora do intervalo 10 e 20.
se (numero < 10) entao
escreva(Nmero fora do intervalo!)
fimse
se (numero > 20) entao
escreva(Nmero fora do intervalo!)
fimse
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 29
se (numero < 10 ou numero > 20) entao
escreva(Nmero fora do intervalo!)
fimse
Combinao de Condies
Escreva um algoritmo que informe se numero esta entre 10 e 20.
se (numero >= 10) entao
se (numero <= 20) entao
escreva(Nmero dentro do intervalo!)
fimse
fimse
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 30
se (numero >= 10 e numero <= 20) entao
escreva(Nmero dentro do intervalo!)
fimse
Condicionais Encadeados
Existem casos em que necessrio estabelecer verificao de condies
sucessivas em que uma determinada ao poder ser executada se um
conjunto anterior for satisfatrio. Sendo executada ela ainda poder
estabelecer novas condies. Isto significa utilizar uma condio dentro
da outra condio, podendo possuir vrios nveis de condio, sendo
chamadas de encadeamentos.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 31
Condicionais Encadeados
Representao
se (<expresso>) entao
comando1
senao
se (< expresso >) 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
Faa um programa que efetue o calculo do reajuste do salario de um
funcionrio. Considere que o funcionrio 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 salrio.
Processamento: Ajuste do salario de acordo com o seu valor.
Sada: Valor com ajuste.
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 33
Exemplo
Perceba que o problema estabelece trs condies para calcular o
reajuste do salrio do funcionrio, sendo:
Salrio < 500, reajuste de 15%
Salrio >= 500, reajuste, mas <= 1000, reajuste de 10%.
Salrio > 1000, reajuste de 5%
Professor: Felipe C. Andrade | Email: felipe.andrade@pro.unifacs.br 34
Exemplo
1. Definir uma varivel para o salrio reajustado: novo_salario;
2. Ler um valor para a varivel salrio.
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 varivel 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

You might also like