UFSM > Ciência da Computação

Primeiro Semestre de 2013
Professora: Juliana Kaizer Vizzotto

Programas com Seleção: If

  1. As instruções executáveis em C tanto realizam ações (como cálculos ou entrada e saída de dados) quanto tomam decisões. Por exemplo, em um programa, poderíamos tomar a decisão de determinar se a nota de uma pessoa em uma prova seria maior ou igual a 6.0, e se fosse, imprimir a mensagem "Parabéns! Você foi aprovado".

  2. Para este tipo de decisão, vamos usar o comando `if`, o qual permite que um programa tome decisões com base na veracidade ou falsidade de uma condição. Se a condição é satisfeita (ou seja, se ela for true ou verdadeira), as instruções do corpo do comando `if` são executadas. Se a condição não for satisfeita (ou seja, se for false ou falsa), as instruções do corpo não são executadas.

  3. As condições dos comandos `if` podem ser definidas com o uso dos operadores relacionais.

  4. Por exemplo:

    /* Exemplo de Programa com comando de Seleção 
       Autoria: Juliana   Data: 29/04/2013 */
       
    #include<stdio.h>
    int main(void){
        int num1; // primeiro numero a ser lido
        int num2; //segundo numero a ser lido
        
        printf("\n Digite dois Numeros Inteiros: \n");
        scanf("%d%d",&num1,&num2);
        
        if (num1==num2){
          prinf("%d eh igual a %d\n",num1,num2);
        }
        if (num1!=num2){
          prinf("%d eh diferente de %d\n",num1,num2);
        }
        if (num1<num2){
          prinf("%d eh menor que %d\n",num1,num2);
        }
        if (num1>=num2){
          prinf("%d eh maior ou igual a %d\n",num1,num2);
        }
        return 0;
    }
    

  5. Outro exemplo é um programa para verificar a posição de um ponto no plano cartesiano:
/* Programa que verifica a posição de um ponto no plano 
   Autoria: Juliana Data:29/04/2013
#include<stdio.h>
int main(void){
    float x,y;
    printf("\n Digite as coordenadas do ponto: ");
    scanf("%f%f",&x,&y);
    
    if (x==0 && y == 0){
       printf("\n Pontos na origem \n");
    }
    if (x==0 && y != 0){
       printf("\n Ponto sobre o eixo y \n");
    }
    if (x != 0 && y ==0){
       printf("\n Ponto sobre o eixo x \n");
    }
    if (x > 0 && y > 0){
       printf("\n Ponto no primeiro quadrante \n");
    }
    if (x < 0 && y > 0){
       printf("\n Ponto no segundo quadrante \n");
    }
    if (x < 0 && y < 0){
       printf("\n Ponto no terceiro quadrante \n");
    }
    if (x > 0 && y < 0){
       printf("\n Ponto no quarto quadrante \n");
    }
   return 0;
}

Programas com Seleção: If ...Else

  1. O comando de seleção `if` executa uma ação indicada somente quando a condição é verdadeira; caso contrário a ação é desprezada.

  2. A estrutura de seleção `if ...else` permite que você execute uma ação quando a condição for verdadeira e outra ação quando a condição for falsa.

      ...
      if (nota >= 6){
        printf("\n Aprovado");
      } 
     else { 
        printf("\n Reprovado");
     }
    

Seleção Aninhada

  1. Comandos `if...else` aninhados testam vários casos, colocando estruturas `if...else` dentro de estruturas `if...else`. Por exemplo, considere o mesmo programa acima, que calcula a posição de um ponto no plano, usando seleção aninhada:

    /* Programa que verifica a posição de um ponto no plano 
       Autoria: Juliana Data:29/04/2013 */
    #include<stdio.h>
    int main(void){
        float x,y;
        printf("\n Digite as coordenadas do ponto: ");
        scanf("%f%f",&x,&y);
        
        if (x==0)
          if (y==0)
             printf("\n Pontos na origem \n");
          else
             printf("\n Ponto sobre o eixo y \n");
        else
          if (y==0)
             printf("\n Ponto sobre o eixo x \n");
          else if (y > 0)
                  if (x > 0)
                    printf("\n Ponto no primeiro quadrante \n");
                  else   
                    printf("\n Ponto no segundo quadrante \n");
               else if (x > 0)
                      printf("\n Ponto no quarto quadrante \n");
                    else printf("\n Ponto no terceiro quadrante \n");
        
       return 0;
    }
    

Exercícios

  1. Faça um programa com seleção aninhada que lê uma nota de um aluno e imprime o respectivo conceito. O conceito A para notas maiores ou iguais a 9.0, B para notas maiores ou iguais a 8.0, C para notas maiores ou iguais a 7.0, D para notas maiores ou iguais a 6.0 e F para todas as outras notas.

  2. Escreva um programa que leia dois valores e imprima na tela o maior deles.

  3. Escreva um programa que leia as 3 notas obtidas por um aluno durante o semestre. A seguir calcule a sua média (aritmética) e informe se ele foi aprovado por média ou ficou para exame. A média de aprovação é 7.0.

  4. Melhore o programa do exercício anterior, de forma que se a média for inferior a 4.0, o aluno estará reprovado automaticamente. Informe ao usuário se isso acontecer. Também solicite o valor do exame (se o aluno ficar em exame) e informe a média final, em todos os casos. A média final depois do exame é calculada somando a média anterior com a nota do exame e então dividindo por 2.

  5. Faça um programa que leia 3 valores inteiros e descubra qual o maior deles.

  6. [Uma solução] Faça um programa que leia 3 valores inteiros, diferentes entre si, e os escreva em ordem crescente. Tente outra solução!

  7. Melhore o programa para determinação de raízes em uma equação do segundo grau, de maneira que ele verifique se existe raiz real. Em caso negativo, deverá informar ao usuário. O que acontece se a for nulo?

Página criada em: Seg Abr 29 09:00:00 BRT 2013. Última atualização em: Mon Apr 29 11:16:03 2013. Autoria: Juliana Kaizer Vizzotto.