Voltar Lista de Tópicos

Editar | Versões | Fórum de Discussão

Prazos para Envio


Prática de Estrutura de Repetição: Enquanto-Faça

Introdução

Nesta etapa vamos praticar a estrutura de repetição Enquanto - Faça.

A estrutura geral do enquanto é a seguinte:

while(<condiçãoTeste>)
{
     <comando 1>;
     <comando 2>;
     ...
     <comando n>;
}

Os comandos localizados dentro do bloco do while são executados enquanto a condição de teste for verdadeira. Quando a condição de teste falhar, os comandos que estiverem fora do bloco serão executados. Veja o fluxograma a seguir:

<Fluxograma>

Problema

Faça um programa que leia um número e calcule o seu fatorial.

Exemplos:

  • 4! = 4 x 3 x 2 x 1 = 24
  • 3! = 3 x 2 x 1 = 6
  • 2! = 2 x 1 = 2
  • 1! = 1
  • 0! = 1

Solução

Podemos resolver este problema realizando sucessivas multiplicações do número com seus antecessores até o número 1.

1 - Abra um novo arquivo fonte

2 - Adicione as bibliotecas padrão

3 - Adicione a função principal

4 - Faça a entrada de dados: ler um número inteiror

5 - Neste ponto, usaremos uma estrutura while para executar sucessivas multiplicações e decrementar o número. Vamos traduzir o fluxograma da solução para código C usando a estrutura while(<condiçãoTeste>).

Fluxograma

<<Imagem fluxograma>>

Código C

6 - Delare uma variável para armazenar o resultado. Essa variável deve ser inicializada com valor 1.

int fatorial = 1;

 7 - Adicione a estrutura de repetição while para executar enquanto o número a ser multiplicado não chegar a 1.

while(numero > 1)
{
    //Coloque aqui o decremento da variável
    //Coloque aqui a multiplicação
}

8 - Adicione o decremento da variável numero e a multiplicação dentro do bloco while

    fatorial = fatorial * numero;
    numero = numero - 1;

9 - Após o fim do bloco while, vamos mostrar o valor da variável fatorial na tela:

printf("Fatorial : %d\n", fatorial);

 8 - Execute o código testando inclusive o fatorial de 0.

Chinês

Vamos analisar a execução do laço while(numero > 1) para uma entrada 4 usando o método chinês.

Iteração numero > 1 numero fatorial
1 V 4 4
2 V 3 12
3 V 2 24
4 F 1 24

Repare que a cada iteração, a variável numero vai decrementando de 1. Quando a variável numero atinge o valor 1, a condição numero > 1 torna-se falsa e o laço while(numero > 1) encerra a sua execução. Após isso, o comando printf é executado e o conteúdo da variável fatorial é mostrado na saída:

Fatorial: 24.

Simplificando o Código

Podemos simplificar um pouco os nossos programas utilizando as notações equivalentes abaixo:

1-

fatorial = fatorial * numero;

Equivale à:

fatorial *= numero;

2-  

numero = numero - 1;

 Equivale à:

numero--;

Modifique o seu código fazendo as substituições acima. 


Questões

Questão 1
Questão 2
Questão 3
Questão 4
Questão 5

Comentários...

Não há comentários ainda... Seja o primeiro!