AULA 12 - Microcontroladores - Técnico

De IFSC
Revisão de 15h30min de 16 de novembro de 2016 por imported>Fargoud (→‎A INSTRUÇÃO FOR)
Ir para navegação Ir para pesquisar

A INSTRUÇÃO DO-WHILE

A forma geral da declaração do-while é:

do 
  comando;
while(expressão_de_teste);   
   

A interpretação é: "Faça comando enquanto expressão_de_teste for verdadeira".

O comando do-while faz quase o mesmo que o while, com a diferença que no primeiro, o loop é executado pelo menos uma vez, já que o teste da expressão é feito no final da interação.

Ou seja, se expressão_de_teste for falsa já na primeira iteração, comando é executado uma vez e em seguida a execução continua fora do loop, na próxima linha de comando.

Caso expressão_de_teste seja verdadeira, comando será executado até que esta se torne falsa.

Exercício:

Adapte o programa do número mágico, para uso com estrutura do-while.


A INSTRUÇÃO FOR

A forma geral da declaração for é:

for(inicialização;teste;incremento)
   comando;

Em sua forma mais simples, inicialização é uma instrução de atribuição (p.e.: i = 0) e é sempre executada uma única vez antes do laço ser inicializado.

O teste é uma instrução condicional que controla o laço.

Comando será executado até que teste seja falso.

A expressão de incremento (ou decremento) define a maneira como a variável de controle do laço será alterada a cada iteração.

Ex:

  for( i = 0; i < 5; i++)               ->   Para i de 0 até 4: 
       j++;                             -> incrementa j a cada interação e incrementa i
  for(i = 5; i > 0; i--)	         ->  Para i de 5 até 0:
    j = j * 2;                          -> novo valor de j é j * 2  e decrementa i
  for(;;)  
  { ... }                              ->  Loop eterno
  for(i = 0; i< 5; i++)                ->  É equivalente a   for (i = 0; i< 5; j++, i++);
        j++; 

Exercícios

  1. Faça um programa que imprima os números de 1 a 10, utilizando:
    • comando while,
    • comando do-while,
    • comando for.
  2. Faça um programa que imprima os números de 0 a 9, de 2 em 2, utilizando o comando for.
  3. Faça um programa que imprima o fatorial de um número solicitado ao usuário, utilizando o comando while.


A INSTRUÇÃO SWITCH

A forma geral da declaração switch é:

switch (exp_int)
{    case rotulo1: 
          comando1   
     case rotulo2: 
          comando2
     case rotulo3: 
          comando3
      ...
     default:
          comandon
}
  • Os comandos comando1, comando2, etc e a declaração default são opcionais no bloco.

Este comando testa o valor da expressão inteira exp_int, comparando-a com rotulo1, rotulo2, etc, até encontrar um rótulo que se iguale.

Quando encontra, começa a executar de cima para baixo os comandos comando1, comando2, etc, até o final do bloco.

Se não encontra, executa o comando do bloco default, isto é, comandon.

Exemplo:

 switch (i)
 {   case 1:  j = j + 5;
     case 2:  
     case 3:  j = j + 3;   
 }  
   
             Valor de i                                Comandos executados
                  1                                            j = j + 5;   e  j = j + 3;
               2 ou 3                                        j = j + 3;
          qualquer outro                                 nenhum.

Utiliza-se a instrução break para que apenas o comando referente a cada rótulo seja executado. Ex: switch ( i )

          { case 1:   j = j + 5;
                         break;
            case 2:   
            case 3:   j = j + 3;
                          break;
             default:  j = j+ 1;    }
            Valor de i                               Comandos executados
                    1                                           j = j + 5;
                2 ou 3                                       j = j + 3;
          qualquer outro                                j = j + 1;


Exercícios



/*************************************************************************/ /**** Programa que imprime números de 1 a 10 utilizando laço do-while ****/ /************************************************************************/

  1. include <stdio.h>

void main(void) { int contador = 1;

   do
   {  printf("%d\n", contador);
      contador++;
   }
   while (contador <= 10);

}

/*************************************************************************/ /*** Programa que imprime números de 1 a 10 utilizando laço for *****/ /*************************************************************************/

  1. include <stdio.h>

void main(void) { int contador;

    for( contador = 1; contador <= 10; contador++)
        printf("%d\n", contador);

}


/*************************************************************************/ /**** Programa que imprime números de 0 a 9, de 2 em 2 *****/ /************************************************************************/

  1. include <stdio.h>

void main(void) { int i;

     for ( i = 0; i <= 9; i+=2)
         printf("%d\n", i);

}


/*************************************************************************/ /***** Programa que calcula o fatorial de um número *******/ /************************************************************************/

  1. include <stdio.h>
  2. include <conio.h>

void main(void) { int numero, j;

     char ch;
     double fat=1;
     for(;;)
     { fat=1;
       printf("Entre com um número positivo:  \n");
       scanf("%d", &numero);
       if(numero== 0 || numero == 1)
           printf("O fatorial de %d é: %.0f\n", numero, fat);
       else
       {    j = numero; 
             while(j)
             {   fat  *=  j;
                   j--;
              }
              printf("O fatorial de %d é: %.0f\n", numero, fat);
       }
     }  

}

/*************************************************************************/ /*** Programa que gera a tabuada de 2 a 9 ******/ /************************************************************************/

  1. include <stdio.h>

void main(void) { int i, j, k;

    printf("\n");
    for (k = 0; k <= 1; k++)
    {   printf("\n");
         for( i = 1; i < 5; i++)
             printf("TABUADA DO %3d  ", i+4*k+1);
         printf("\n");
         for( i = 1; i <= 9; i++)
         {    for( j = 2 + 4 *k; j <= 5 + 4*k; j++)

printf("%3d x %1d = %3d\t", j, i, j*i);

              printf("\r");
          }
    }     

}


/*******************************************************************/ /**** Programa da feira de frutas ****/ /******************************************************************/

  1. include <stdio.h>
  2. include <conio.h>

void main(void) { int i, opcao;

     printf("\n");
     for(i = 1; i <= 53; i++)

printf("*");

     printf("\n*****\t\tPROGRAMA DA FEIRA!!\t\t*****\n");
     for(i = 1; i <= 53; i++)

printf("*");

     printf("\n\n\t\t Escolha sua opção: \n");
     printf("\n\n\t\t(1) Uva; \n");
     printf("\n\t\t(2) Maça; \n");
     printf("\n\t\t(3) Banana; \n");
     printf("\n\t\t(4) Laranja; \n");
     scanf("%d",&opcao);
     switch(opcao)
     {  case 1:  printf("O cacho de uvas custa R$1.00");
                      break;

case 2: printf("A unidade de maças custa R$0.50");

                      break;

case 3: printf("O kilo de bananas custa R$0.70"); break; case 4: printf("A duzia de laranjas custa R$0.90");

                      break;

default: printf("Desculpe, mas não temos esta fruta!!");

     }

}


Exercícios

1) Um certo Centro Acadêmico está tentando realizar um plebiscito para escolha do logotipo do curso, dentre 3 propostas. Faça o programa que implementa a “urna eletrônica”, a qual vai contabilizar os votos dos estudantes e professores em cada logotipo, os votos brancos e nulos; calcular os percentuais de votos válidos em cada logotipo e imprimir qual foi o logotipo vencedor.

2) Faça um programa-calculadora de 4 funções, ou seja, o usuário entra com dois números e estes são somados, subtraídos, multiplicados ou divididos.


<< Página do curso

<< Aula 11 - Instruções IF, IF-ELSE e WHILE AULA 12 - Microcontroladores Aula 14 - Funções >>