ALP Algoritmos e Programação 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. - 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 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> <comando simples ou comando composto> outros comandos 3
Estrutura de Seleção Se... Então. 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
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. Algoritmo Maior que 10 Inicio Fim Inteiro valor Escreva( Digite o valor: ); Leia(valor); Se (valor > 10) Então Escreva( Valor é maior que 10 ); 6
Estrutura de Seleção Se... Então (Seleção Composta) 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 ); Escreva( Valor é menor ou igual a 10 ); 7
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
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! ); Escreva( Vc reprovou! ); Escreva( Estude mais! ); Fim 9
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
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 ); Se(cidadania == b ) Então Escreva( O cidadão fala português!\n ); Se(cidadania == i ) Então Escreva( O cidadão fala italiano!\n ); Escreva( Impossível saber a língua!\n ); Fim 11
Exercício: 5) Faça um algoritmo que verifique se uma letra digitada é vogal ou consoante. 12
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! ); Escreva( A letra digitada é consoante! ); Fim 13
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
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! ); Se ((A==B) (A==C) (B==C)) Então Escreva( É triângulo isósceles! ); Se((A!=B) && (B!=C) && (A!=C)) Então Escreva( É triângulo escaleno! ); Escreva( Esses valores não compõe um triângulo! ); Fim 15