AlgoritmosDesvioCondicional

22
Algoritmos Desvios condicionais Instituto Vianna Junior

description

PPT Algoritmos 05

Transcript of AlgoritmosDesvioCondicional

Page 1: AlgoritmosDesvioCondicional

AlgoritmosDesvios condicionais

AlgoritmosDesvios condicionais

Instituto Vianna Junior

Page 2: AlgoritmosDesvioCondicional

Desvios condicionaisDesvios condicionaisNesta Unidade aprenderemos as instruções que fazem desvios na seqüência de execução de um algoritmo, ou seja, não se trata mais dos algoritmos que vimos até então, partes do programa poderão ser executadas ou não, dependendo de um determinado teste lógico ou comando.

Ao ver os conceitos desta unidade, saberemos de coisas como:

Como fazer desvios condicionais simples, com apenas uma condição de execução.

Como fazer desvios condicionais compostos que podem ter duas condições de execução.

Como fazer desvios condicionais encadeados, criando uma série de opções diferentes na ordem de execução do algoritmo.

Page 3: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simples

Vejamos mais um exemplo de algoritmos seqüenciais. Considere um programa para calcular a média das notas de um aluno. O programa deve solicitar as quatro notas via teclado e então exibir o valor da média na tela. Isto pode ser facilmente executado por um algoritmo simples.

Page 4: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simplesEXEMPLO 10algoritmo "Média das notas"var n1,n2,n3,n4 : real soma : real media : realinicio escreva("Digite a primeira nota: ") leia(n1) escreva("Digite a segunda nota: ") leia(n2) escreva("Digite a terceira nota: ") leia(n3) escreva("Digite a quarta nota: ") leia(n4) soma <-(n1+n2+n3+n4) media<-(soma/4) escreva("A média das notas do auno é ",media)fimalgoritmo

Page 5: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simples

Agora imagine que este programa precisasse também imprimir na tela o resultado da aprovação do aluno, ou seja, se o aluno está aprovado.

Para executar esta operação o programa precisa TOMAR UMA DECISÃO, deve ser capaz de executar um TESTE LÓGICO com o valor da média final, verificar se o aluno está aprovado e imprimir o resultado adequado na tela.

Para este tipo de função é usado um desvio condicional

SE.... ENTÃO.

Page 6: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simples

Sintaxe:

se <expressão lógica> então <sequencia de comandos a ser executada caso o teste lógico retorne verdadeiro>

fimse

seqüência normal de execução do algoritmo

Page 7: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simplesExemplo:

se media > 7 entãoEscreva (“ALUNO APROVADO”) fimse

seqüência normal de execução do algoritmo

Obs: No caso do teste retornar falso, a seqüência compreendida entre o

“se... fimse” será simplesmente ignorada

Page 8: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simples

EXEMPLO 11:

Fazer um algoritmo que capture as 4 notas de um aluno via teclado, calcule a média e imprima a frase “ ALUNO APROVADO” caso a média seja maior ou igual a 7

Page 9: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simplesalgoritmo "Média das notas e apresentação do resultado"varn1,n2,n3,n4, soma, media : realinicioescreva("Digite a primeira nota: ")leia(n1)escreva("Digite a segunda nota: ")leia(n2)escreva("Digite a terceira nota: ")leia(n3)escreva("Digite a quarta nota: ")leia(n4)soma <-(n1+n2+n3+n4)media<-(soma/4)escreval("A média das notas do auno é ",media)se media >= 7 entao

escreval(“**** ALUNO APROVADO ****")fimsefimalgoritmo

Page 10: AlgoritmosDesvioCondicional

Desvios condicionais simplesDesvios condicionais simples

No exemplo apresentado ficou “faltando” alguma coisa, seria interessante escrever

também o complemento da informação “ALUNO APROVADO” que seria

logicamente “ALUNO REPROVADO”.

Page 11: AlgoritmosDesvioCondicional

Desvio condicional compostoDesvio condicional composto

se quisermos construir um algoritmo onde após calculada a média, seja mostrada na tela uma mensagem indicando se o aluno foi aprovado ou reprovado. Utiliza-se o desvio condicional composto se... então... senão!

Sintaxe:se <condicao> então

<conjunto de comandos>

senão

<conjunto de comandos>

fimse

Page 12: AlgoritmosDesvioCondicional

Desvio condicional compostoDesvio condicional composto

Veja que a se condição for verdadeira, os comandos localizados até o senão serão executados e o programa continuará após o fimse.

Já se a condição for falsa, os comandos entre senão e fimse é que serão executados e o programa prossegue sua execução;

Page 13: AlgoritmosDesvioCondicional

Desvio condicional compostoDesvio condicional compostoEXEMPLO 12algoritmo "Média das notas e apresentação do resultado"varn1,n2,n3,n4, soma, media : realinicioescreva("Digite a primeira nota: ")leia(n1)escreva("Digite a segunda nota: ")leia(n2)escreva("Digite a terceira nota: ")leia(n3)escreva("Digite a quarta nota: ")leia(n4)soma <-(n1+n2+n3+n4)media<-(soma/4)escreval("A média das notas do auno é ",media)se media >= 7 entao

escreval(“**** ALUNO APROVADO ****")fimsefimalgoritmo

Page 14: AlgoritmosDesvioCondicional

Desvio condicional composto

Desvio condicional composto

EXEMPLO 13 Fazer um algoritmo que verifica a unidade de horas (entre 24 horas) capturada via teclado e informar se é dia ou noite

Page 15: AlgoritmosDesvioCondicional

Desvio condicional compostoDesvio condicional compostoalgoritmo "dia e noite"

varh: inteiroinicio

escreval ("Entre com o valor da hora (inteira, sem os minutos)")

leia (h)se (h>=6) e (h<=18) entao

escreval ("é dia")senaoescreva ("é noite")

fimsefimalgoritmo

Page 16: AlgoritmosDesvioCondicional

Desvios aninhadosDesvios aninhadosComo foi visto anteriormente, ao

escrevermos desvios condicionais nos algoritmos podemos definir um conjunto de instruções, será executado quando uma condição for satisfeita ou não.

No entanto, o desvio condicional também é uma instrução. Logo podemos incluir outros se... então... senão.... Fimse dentro desta instrução.

Este processo é conhecido como alinhamento de desvios condicionais.

Page 17: AlgoritmosDesvioCondicional

Desvios aninhadosDesvios aninhadosSintaxe:

se <condição> então<conjunto de comandos>se <condição> então

<conjunto de comandos>fimse

senão<conjunto de comandos>

fimse

Qual a utilidade deste alinhamento? Exemplos é o que não faltam. Basta imaginarmos um caso onde 3 ou mais situações devem ser tratadas.

Page 18: AlgoritmosDesvioCondicional

Desvios aninhadosDesvios

aninhadosExemplo.

Fazer um algoritmo onde, dada a idade de uma pessoa, escreva se ela é criança, adolescente ou adulta.

Page 19: AlgoritmosDesvioCondicional

Desvios alinhadosDesvios alinhadosalgoritmo "criança, adolescente ou adulto"

varid:inteiroinicioEscreval ("entre com a idade da pessoa")leia (id)

se id<=12 entao escreva ("é uma criança") senao

se id<18 entao escreva ("é um adolescente") senao escreva ("é um adulto") fimse

fimsefimalgorítmo

Page 20: AlgoritmosDesvioCondicional

Estrutura escolhaEstrutura escolhaCom a estrutura escolha ou seleção múltipla, é

possível comparar variáveis com uma série de valores (ou outras variáveis) num mesmo comando.

Sintaxe

escolha <expressão-de-seleção>caso <exp11>, <exp12>, ..., <exp1n>   <seqüência de comandos-1>caso <exp21>, <exp22>, ..., <exp2n>   <seqüência de comandos-2>...outrocaso   <seqüência de comandos-extra>fimescolha

Page 21: AlgoritmosDesvioCondicional

Estrutura escolhaEstrutura escolhaExemplo1) Escreva um algoritmo que indique o estado de time de

futebol que foi digitadoalgoritmo "Times"Var time: caractereinicioescreva ("Entre com o nome de um time de futebol conhecido: ")leia (time)escolha timecaso "Flamengo", "Fluminense", "Vasco", "Botafogo" escreval ("É um time carioca.")caso "São Paulo", "Palmeiras", "Santos", "Corínthians", "São Caetano" escreval ("É um time paulista.")caso "Atlético Mineiro", "Cruzeiro" escreva ("É um time de Minas Gerais")outrocaso escreval ("Eu esperava por um time mais famoso, esse eu nem conheço")fimescolhafimalgoritmo

Page 22: AlgoritmosDesvioCondicional

ExercíciosExercícios1) Desenvolver um algoritmo que calcule o reajuste de salário

sendo que existe 3 faixas diferenciadas de reajuste: para salários de até R$ 500 o reajuste é de 15%, para salários até R$ 1000, o reajuste é de 10% e acima de R$ 1000 o reajuste é de 5%. Desenhar o fluxograma.

2) Elaborar um algoritmo para receber 3 valores reais positivos como sendo os lados de um triangulo e verificar se formam um triangulo. Caso positivo, informar ainda se o triangulo é eqüilátero (3 lados iguais), isósceles( 2 lados iguais) ou escaleno (com 3 lados diferentes). Desenhe o fluxograma.

3) Do exercício resolvido para o algoritmo de separação de cédulas, corrija o problema do algoritmo não ser capaz de escolher se a palavra cédula tem ou não o S no final, faça-o reconhecer a necessidade ou não do S.

4) Ainda para o algoritmo supra citado, modifique sua estrutura para que ele forneça PREFERENCIALMENTE cédulas de R$ 5,00 ao invés de R$ 10,00