Comandos de Seleção

download Comandos de Seleção

of 15

Transcript of Comandos de Seleção

  • 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]