ALP – Algoritmos e Programação Prof. Adriano Fiorese Estruturas de Seleção . Motivação . Conceito . Exemplos .Exercícios 1 Motivação Ex: Algoritmo para o cálculo de raízes reais de equações de 2º grau. Prof. Adriano Fiorese - E se o delta ( ) for negativo? - Essa “dúvida” (se...) pode direcionar o algoritmo para caminhos diferentes dependendo do “resultado” dessa dúvida. - Como isso é resolvido usando fluxogramas? (tomada de decisão) - Como isso é resolvido em pseudocódigo? (próximo slide) 2 Conceito Prof. Adriano Fiorese Uma estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado qdo determinadas condições, representadas por expressões lógicas ou relacionais são ou não satisfeitas. Forma geral da estrutura Se ... Então .F. Se (condição) Então .V. <comando simples ou comando composto> Senão <comando simples ou comando composto> Fim Se outros comandos 3 Estrutura de Seleção Se ... Então Prof. Adriano Fiorese . Comando simples é a existência de apenas uma expressão ou instrução, seguida de ponto e vírgula. . O comando composto é a existência de mais de uma expressão ou instrução, associada com a estrutura de seleção Se...Então. O comando composto pode ser outra estrutura de seleção. Para tal chamamos essa construção de estruturas de seleção compostas ou aninhadas. 4 Prof. Adriano Fiorese Estrutura de Seleção Se ... Então . A condição pode ser uma expressão lógica (Ex: a > b, (a==0) && (b>3), etc...) ou um valor ou expressão que avaliada resulte em um valor numérico, de forma que se o valor for diferente de 0 (zero), então a condição será considerada verdadeira. Ex: Considere a = 3, b = 4 Se (a) (verdadeiro); Se (3-4) (verdadeiro); Se(a-b) (verdadeiro); Se(a+1-b) (falso); Se(0) (falso) Se((a < b) && (b > 0)) (verdadeiro) 5 Estrutura de Seleção Se ... Então (Seleção Simples) 1) Faça um algoritmo em pseudocódigo que verifique se um determinado valor numérico inteiro é maior que 10. Prof. Adriano Fiorese Algoritmo Maior que 10 Inicio Fim Inteiro valor Escreva(“Digite o valor:”); Leia(valor); Se (valor > 10) Então Escreva(“Valor é maior que 10”); Fim Se 6 Estrutura de Seleção Se ... Então (Seleção Composta) Prof. Adriano Fiorese 2) Para o exemplo anterior, também escreva uma mensagem para o caso em que o valor numérico é menor ou igual a 10. Algoritmo Maior Ou Menor que 10 Inicio Fim Inteiro valor Escreva(“Digite o valor:”); Leia(valor) Se (valor > 10) Então Escreva(“Valor é maior que 10”); Senão Escreva(“Valor é menor ou igual a 10”); Fim Se 7 Prof. Adriano Fiorese Estrutura de Seleção Se...Então (Seleção Composta) Exercício 3) Dadas as 3 notas relativas à avaliação semestral de um aluno, escreva um algoritmo em pseudocódigo que calcule a média e diga se o aluno passou ou reprovou. Incentive ou repreenda conforme o caso. OBS: O mínimo para ser aprovado é 7. 8 Prof. Adriano Fiorese Estrutura de Seleção Se ... Então (Seleção Composta) Algoritmo Media Real n1, n2, n3, media Inicio Escreva(“Digite o valor da 1a nota:”); Leia(n1); Escreva(“Digite o valor da 2a nota:”); Leia(n2); Escreva(“Digite o valor da 3ª nota:”); Leia(n3); media = (n1 + n2 + n3)/3; Se (media >= 7) Então Escreva(“Vc passou!”); Escreva(“Parabéns!”); Senão Escreva(“Vc reprovou!”); Escreva(“Estude mais!”); Fim Se Fim 9 Prof. Adriano Fiorese Estrutura de Seleção Se ... Então (Seleção Composta Aninhada ) Exercício 4) Dada a cidadania de um cidadão, faça um algoritmo que indique a língua falada por ele. As cidadanias possíveis são alemã, brasileira e italiana. 10 Prof. Adriano Fiorese Algoritmo Cidadania char cidadania Inicio Escreva("Digite a para cidadania alemã: ”); Escreva("Digite b para cidadania brasileira: ”); Escreva("Digite i para cidadania italiana: ”); Leia(cidadania); Se(cidadania == „a‟) Então Escreva(“O cidadão fala alemão!\n”); Senão Se(cidadania == „b‟) Então Escreva(“O cidadão fala português!\n”); Senão Se(cidadania == „i‟) Então Escreva(“O cidadão fala italiano!\n”); Senão Escreva(“Impossível saber a língua!\n”); Fim Se Fim Se Fim Se Fim 11 Prof. Adriano Fiorese Exercício: 5) Faça um algoritmo que verifique se uma letra digitada é vogal ou consoante. 12 Prof. Adriano Fiorese Algoritmo Alfabeto char l Inicio Escreva("Digite a letra: ”); Leia(l); Se((l == „a‟) || (l == „e‟) || (l == „i‟) || (l == „o‟) || (l == „u‟)) Então Escreva(“A letra digitada é vogal!”); Senão Escreva(“A letra digitada é consoante!”); Fim Se Fim 13 Prof. Adriano Fiorese Exercício: 6) Dados 3 valores: A, B e C, verifique se eles podem ser os comprimentos dos lados de um triângulo. Se forem, verifique se compõe um triângulo equilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo. Considerando: 1) Triângulo é uma figura geométrica fechada com 3 lados, em que cada um é menor que a soma dos outros dois. 2) Triângulo equilátero possui os 3 lados iguais 3) Triângulo isósceles possui 2 lados iguais 4) Triângulo escaleno possui todos os lados diferentes 14 Prof. Adriano Fiorese Algoritmo Triangulo Inteiro A, B, C Inicio Escreva("Digite o lado A: ”); Leia(A); Escreva("Digite o lado B: ”); Leia(B); Escreva("Digite o lado C: ”); Leia(C); Se((A < B+C) && (B < A+C) && (C < A +B)) Então Se((A==B) && (B==C)) Então Escreva(“É triângulo equilátero!”); Senão Se ((A==B) || (A==C) || (B==C)) Então Escreva(“É triângulo isósceles!”); Senão Se((A!=B) && (B!=C) && (A!=C)) Então Escreva(“É triângulo escaleno!”); Fim Se Fim Se Fim Se Senão Escreva(“Esses valores não compõe um triângulo!”); Fim Se Fim 15