Baixe o app para aproveitar ainda mais
Prévia do material em texto
ECT1203 Linguagem de Programação Prof. Luiz Eduardo Cunha Leite Aula 05 – Comandos de Seleção Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Hora de silenciar o celular • Manter o celular sempre desligado/silencioso quando estiver em sala de aula • Nunca atender o celular em sala de aula Objetivo da aula Apresentar os comandos de seleção em C++: ▫ Comando if - else ▫ Comando switch ▫ Operador ternário ? : Média do aluno • O aluno que tem uma média maior que 7,0 está “aprovado”. • O aluno que tem uma média entre 3,0 e 6,9 está em “prova final”. • O aluno que tem uma média abaixo de 3,0 está “reprovado”. Média do aluno • O aluno que tem uma média maior que 7,0 está “aprovado”. • O aluno que tem uma média entre 3,0 e 6,9 está em “prova final”. • O aluno que tem uma média abaixo de 3,0 está “reprovado”. processamento Nota “Aprovado” “Prova final” “Reprovado” Comandos de Seleção • Permite a seleção de uma ou várias instruções (bloco) a serem executado quando uma determinada expressão condicional for verdadeira. Comando de Seleção Simples Em Portugol... se condição então seqüência de comandos fimse Comando de Seleção Simples Na Linguagem C++... if (expressão) comando; O comando associado ao if é executado apenas se a expressão for verdadeira (diferente de zero) . Comando: - Simples - Bloco - Nada CodeBlocks Faça um programa que receba do usuário um determinado valor e imprima o mesmo na tela, caso esse valor seja diferente de zero, uma mensagem de “número válido” deve ser impressa na tela. CodeBlocks Faça um programa que receba do usuário um determinado valor e imprima o mesmo na tela, caso esse valor seja diferente de zero, uma mensagem de “número válido” deve ser impressa na tela. Início Usuário digita num Num != 0 “número válido” Fim Sim Não CodeBlocks int numero; cout << “Digite um numero diferente de zero”; cin >> numero; if (numero != 0) cout << “Numero valido!”; Expressão Condicional Qualquer expressão válida pode ser usada para controlar um comando if em C++. Não há obrigatoriedade de usar operadores lógicos ou relacionais. int numero; cout << “Digite num diferente de zero: ”; cin >> numero; if ( numero ) cout << “Numero valido!”; O 2º comando cout será executado se numero for diferente de zero. Poderia usar também if (numero !=0) Comando de Seleção Composta • Dois comandos ou blocos alternativos dependem de uma mesma condição. • Se uma condição for verdadeira, o primeiro comando ou bloco é executado. Caso contrário, o segundo é executado. Comando de Seleção Composta Em Portugol... se condição então seqüência de comandos senão seqüência de comandos fimse Comando de Seleção Composta Na Linguagem C++... if (expressão) Comando1; else Comando2; O comando associado ao if é executado se a expressão for verdadeira (diferente de zero) caso contrário, o comando associado ao else é executado Comando: - Simples - Bloco - Nada CodeBlocks Faça um programa que receba do usuário um determinado valor e imprima o mesmo na tela, caso esse valor seja diferente de zero, a mensagem “número válido” deve ser impressa na tela. Caso contrário, deve ser impressa a mensagem “número inválido”. CodeBlocks Início Usuário digita num Num != 0 “número válido” Fim Sim Não “número inválido” Comando de Seleção Composta Em C++... int numero; cout << “Digite um numero diferente de zero”; cin >> numero; if (numero != 0) cout << “Numero valido!”; else cout << “Numero invalido!; Algoritmo da amizade http://www.youtube.com/watch?v=mOm2ceJvKYA Seleção Aninhada • Uma estrutura de seleção dentro de um bloco de comandos de outra estrutura de seleção • Um grande conjunto de combinações de situações deve ser observado Seleção Aninhada Se Senão Se – Em Portugol 1. se (condição1) então 2. Comando1; 3. senão 4. se (condição2) então 5. Comando2; 6. senão 7. se (condição3) então 8. Comando3; 9. senão 10. se (condição4) então 11. Comando4; 12. fimse; 13. fimse; 14. fimse; 15. fimse; Seleção aninhada if else if– Na Linguagem C++ if (expressão1) comando1; else { if (expressão2) comando2; else { if (expressão3) comando3; else comando4; } } Seleção Encadeada Homogênea Em Portugol... 1. se (condição1) então 2. Comando1; 3. fimse; 4. se (condição2) então 5. Comando2; 6. fimse; 7. se (condição3) então 8. Comando3; 9. fimse; 10. se (condição4) então 11. Comando4; 12. fimse; Caso as condições 1, 2, 3 e 4 não possam ocorrer ao mesmo tempo, testes desnecessários são realizados. CodeBlocks Faça um programa que de acordo com a média do aluno mostre se ele foi “aprovado”, se está em “prova final” ou se foi “reprovado”. Início Digitar a média do aluno média>= 7 “aprovado” Fim Sim Não “reprovado” média>= 3 “prova final” Sim Não Seleção de Múltipla Escolha • Simplificação da seleção se-senão-se • Em alguns situações, existem situações mutuamente exclusivas, isto é, se uma situação for executada, as demais não serão. Em Portugol: 1. escolha X 2. caso v1: C1; 3. caso v2: C2; 4. caso v3: C3; 5. caso v4: C4; 6. casocontrário: C5; 7. fimescolha; Seleção de Múltipla Escolha Na Linguagem C++... switch (expressão) { case constante1: seqüência de comandos 1; break; case constante2: seqüência de comandos 2; break; . . . default: seqüência de comandos 4; } Executada se expressão for igual ao valor constante2 Executada se expressão não for igual a nenhum caso anterior Valor Constante. Não pode ser variável ou expressão. CodeBlocks Uma antiga tribo aborígene só consegue diferenciar o 0, 1 e 2. Qualquer número diferente desses é desconhecido. Faça um programa que simule o raciocínio dessa tribo. Seleção de Múltipla Escolha Na Linguagem C++... int numero; cin >> numero; switch (numero) { case 0: cout << “zero”; break; case 1: cout << “um”; break; case 2: cout << “dois”; break; default: cout << “numero maior que dois ou menor que zero”; } Seleção de Múltipla Escolha Na Linguagem C++... Se a cláusula break não for colocada, após a execução dos comandos de um caso válido, os comandos dos casos subseqüentes também serão executados até que seja executado um comando break ou switch. Dica de programação O switch só aceita como argumento um número. Caso, você queira usar um intervalo tem que usar os comandos if-else. Operador Ternário ? : O operador ternário ? : utiliza três operandos. O primeiro operando é considerado pelo operador como sendo um valor lógico (verdadeiro se for diferente de zero e falso caso contrário). Os demais operandos são considerados como valores numéricos. O valor resultante do operador será o valor do segundo operando se o primeiro operando for verdadeiro ou do terceiro operando em caso contrário. Exp1 ? Exp2 : Exp3; A expressão Exp1 é avaliada. Se for verdadeira, Exp2 é avaliada e setornará o resultado do operador ? : Caso contrário, Exp3 será avaliada e se tornará o resultado do operador. Operador Ternário ? : int x, y; cout << “Entre com um valor para x: ”; cin >> x; y = ( x > 10 ? 100 : 200 ); Equivale a: if ( x > 10 ) y = 100; else y = 200; Exercícios 1. Escrever um programa que leia um numero inteiro e imprima um valor de saída dado pela função a seguir. [Usar if-else] Exercícios 2. Um comerciante comprou um produto e quer vendê- lo com um lucro de 80% se o valor da compra for menor que R$20,00; caso contrário, o lucro será de 40%. Fazer um programa para ler o valor do produto e imprimir o valor da venda. [Usar operador ternário] Exercícios 3. Escrever um programa para ler um peso de uma pessoa na Terra e o número de identificação de um planeta. Em seguida, imprimir o valor do peso no respectivo planeta usando a tabela e a equação a seguir. [Usar switch]
Compartilhar