AULA 12 - Introdução à Linguagem C - FIC

De IFSC
Ir para navegação Ir para pesquisar

O COMANDO 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 interaçã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é 1:
j = j * 2; novo valor de j é j * 2 e decrementa i


for(;;) { ... } → Loop eterno


 for(i = 0; i< 5; i++) 
   j++; 

É equivalente a

for (i = 0; i< 5; j++, i++);"


Exercícios

  1. Faça um programa que imprima os números de 1 a 10, utilizando:
    1. comando while,
    2. comando do-while,
    3. 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.

Sugestões de solução

O COMANDO SWITCH

A forma geral da declaração switch é:

switch (exp_int)
{ case rot1:
cmd1
case rot2:
cmd2
...
default:
cmdn
}
 * Os comandos cmd1, cmd2, 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 rot1, rot2, etc, até encontrar um rótulo que se iguale.

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

Se não encontra, executa o comando do bloco default, cmdn.


Ex:

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 while: *****/
/************************************************************************/
#include <stdio.h>
void main(void)
{ int contador = 1;
  while (contador <= 10)
 { printf("%d\n", contador);
   contador++;
 }
}


/*************************************************************************/
/**** Programa que imprime números de 1 a 10 utilizando laço do-while ****/
/************************************************************************/
#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 *****/
/*************************************************************************/
#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 *****/
/************************************************************************/
#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 *******/
/************************************************************************/
#include <stdio.h>
#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 ******/
/************************************************************************/
#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 %2d ", 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("\n");
    }
  }
}
/*******************************************************************/
/**** Programa da feira de frutas ****/
/******************************************************************/
#include <stdio.h>
#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!!");
  }
 }


Exercicios

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.


3) Escreva o programa que apresenta um menu de produtos ao usuário. O usuário deve escolher qual produto quer comprar, a quantidade do mesmo, ou digitar "0", para sair. A cada item comprado, o programa mostra o valor parcial da compra. Ao final, o programa mostra o valor total comprado.


SUGESTÃO DE SOLUÇÃO (Exercícios 2 e 3): solucao1