8/19/2019 Comandos de Seleção
1/37
ECT1203 Linguagem de Programação
2012.1Prof. Aquiles Medeiros Burlamaqui
Profa. Luciano Ferreira
Prof. Luiz Eduardo Cunha LeiteProf. Marconi Câmara Rodrigues
Prof. Marcelo Henrique Ramalho Nobre
Aula 05 – Comandos de Seleção
Universidade Federal do Rio Grande do NorteEscola de Ciências e Tecnologia
8/19/2019 Comandos de Seleção
2/37
Hora de silenciar o celular
• Manter o celular sempre desligado/silencioso quandoestiver em sala de aula
• Nunca atender o celular em sala de aula
8/19/2019 Comandos de Seleção
3/37
Objetivo da aula
Apresentar os comandos de seleção em C++:
▫ Comando if - else▫ Comando switch
▫ Operador ternário ? :
8/19/2019 Comandos de Seleção
4/37
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”.
8/19/2019 Comandos de Seleção
5/37
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”.
processamentoNota “Aprovado”
“Prova final”
“Reprovado”
8/19/2019 Comandos de Seleção
6/37
Comandos de Seleção
• Permite a seleção de uma ou várias instruções(bloco) a serem executado quando uma determinadaexpressão condicional for verdadeira.
8/19/2019 Comandos de Seleção
7/37
Comando de Seleção Simples
Em Portugol...
se condição então
seqüência de comandos
fimse
8/19/2019 Comandos de Seleção
8/37
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
8/19/2019 Comandos de Seleção
9/37
8/19/2019 Comandos de Seleção
10/37
CodeBlocks
Faça um programa que mostre o valor digitado pelo usuário,caso esse valor seja diferente de zero, uma mensagem de“número válido” deve aparecer.
Início
Usuário digita num
Num != 0 “número válido”
Fim
Sim
Não
8/19/2019 Comandos de Seleção
11/37
CodeBlocks
int numero;
cout > numero;
if (numero != 0)
cout
8/19/2019 Comandos de Seleção
12/37
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 > numero;
if ( numero )
cout
8/19/2019 Comandos de Seleção
13/37
Comando de Seleção Composta
• Dois comandos ou blocos alternativos dependem de umamesma condição.
• Se uma condição for verdadeira, o primeiro comando oubloco é executado. Caso contrário, o segundo é
executado.
8/19/2019 Comandos de Seleção
14/37
Comando de Seleção Composta
Em Portugol...
se condição entãoseqüência de comandos
senão
seqüência de comandos
fimse
8/19/2019 Comandos de Seleção
15/37
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
8/19/2019 Comandos de Seleção
16/37
CodeBlocks
Faça um programa que mostre o valor digitado pelousuário, caso esse valor seja diferente de zero, umamensagem de “número válido” deve aparecer. Senão
uma mensagem de “número inválido” deve aparecer.
8/19/2019 Comandos de Seleção
17/37
CodeBlocks
Início
Usuário digita num
Num != 0 “número válido”
Fim
Sim
Não
“número inválido”
8/19/2019 Comandos de Seleção
18/37
Comando de Seleção Composta
Em C++...
int numero;
cout > numero;
if (numero != 0)
cout
8/19/2019 Comandos de Seleção
19/37
Algoritmo da amizade
http://www.youtube.com/watch?v=mOm2ceJvKYA
8/19/2019 Comandos de Seleção
20/37
8/19/2019 Comandos de Seleção
21/37
Seleção Encadeada (Aninhada)
• Várias seleções agrupadas
• Um grande conjunto de combinações de situações deveser observado
8/19/2019 Comandos de Seleção
22/37
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ão5. Comando2;
6. senão
7. se (condição3) então
8. Comando3;
9. senão
10. se (condição4) então11. Comando4;
12. fimse;
13. fimse;
14. fimse;
15. fimse;
8/19/2019 Comandos de Seleção
23/37
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;
}
}
8/19/2019 Comandos de Seleção
24/37
Seleção Encadeada Homogênea
Em Portugol...
1. se (condição1) então
2. Comando1;
3. fimse;
4. se (condição2) então5. 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 aomesmo tempo, testes
desnecessários são
realizados.
8/19/2019 Comandos de Seleção
25/37
CodeBlocks
Faça um programa que de acordo com a média doaluno mostre se ele foi “aprovado”, se está em“prova final” ou se foi “reprovado”.
8/19/2019 Comandos de Seleção
26/37
Início
Digitar a média doaluno
média>= 7 “aprovado”
Fim
Sim
Não
“reprovado”
média>= 3 “prova final”
Sim
Não
8/19/2019 Comandos de Seleção
27/37
Seleção de Múltipla Escolha
• Simplificação da seleção se-senão-se
• Em alguns situações, existem situações mutuamenteexclusivas, 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;
8/19/2019 Comandos de Seleção
28/37
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.
8/19/2019 Comandos de Seleção
29/37
CodeBlocks
Uma antiga tribo aborígene só consegue diferenciar o0, 1 e 2. Qualquer número diferente desses édesconhecido. Faça um programa que simule o
raciocínio dessa tribo.
8/19/2019 Comandos de Seleção
30/37
Seleção de Múltipla Escolha
Na Linguagem C++...
int numero;
cin >> numero;
switch (numero) {
case 0:cout
8/19/2019 Comandos de Seleção
31/37
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.
8/19/2019 Comandos de Seleção
32/37
Dica de programação
O switch só aceita como argumento somente umnúmero. Caso, você queira usar um intervalo temque usar os comandos if-else.
8/19/2019 Comandos de Seleção
33/37
Operador Ternário ? :
O operador ? : pode substituir comandos if-else na forma geral:
if (expressão1) expressão2;
else expressão3;
Quando expressão2 e expressão3 forem expressões simples(nunca outro comando em C++)
Exp1 ? Exp2 : Exp3;
A expressão Exp1 é avaliada.Se for verdadeira, Exp2 é
avaliada e se tornará o valor da
expressão ? como um todo.
Caso contrário, Exp3.
8/19/2019 Comandos de Seleção
34/37
Operador Ternário ? :
int x, y;
cout > x;
y = x > 10 ? 100 : 200;Equivale a:
if ( x > 10 ) y = 100;
else y = 200;
8/19/2019 Comandos de Seleção
35/37
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]
8/19/2019 Comandos de Seleção
36/37
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 eimprimir o valor da venda. [Usar operador ternário]
8/19/2019 Comandos de Seleção
37/37
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 aseguir. [Usar switch]
Top Related