Voltar Lista de Tópicos

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

Prazos para Envio


Prática de Estrutura de Repetição: Repita-Até

Introdução

Estruturas de repetição são usadas para causar repetições de uma sequência de comandos enquanto uma dada condição seja satisfeita.

Faça um programa que leia o capital C, a taxa fixa i e o período de tempo t, calcule e apresente o montante ao final, onde, o montante M é dado por: 

M = C (1+i)

O programa deve executar até que o usuário selecione a opção de sair.

 Fluxograma e Código C

O fluxograma para executar o programa uma única vez seria o seguinte:

Os valores de capital inicial, taxa de juros e tempo são lidos, o montante é calulado e apresentado na tela e o programa termina. Digite o código C abaixo:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>

int main()
{
    float c, i, m;
    int t;
    setlocale(LC_ALL, "portuguese");
    
	printf("Informe o capital inicial do investimento: ");
    scanf("%f", &c);
    printf("Informe a taxa de juros em porcentagem (%): ");
    scanf("%f", &i);
    printf("Informe o tempo da aplicação: ");
    scanf("%d", &t);
    
	m = c*pow((1-i), t);
	    
    printf("Você resgatará o valor de R$ %.2f.\n", m);
    
    return 0;
}

O programa acima está correto, porém, executa apenas uma única vez. Para fazer com que ele execute até que o usuário informe que deseja encerrar, vamos fazer algumas modificações no fluxograma. Veja abaixo:

Antes de chegar ao fim do programa, perguntamos ao usuário se ele deseja sair. Se ele escolher a opção 1, o programa termina. Caso contrário, iremos redirecionar o fluxo para a entrada de dados do programa e o processo reiniciará.

Para traduzir o fluxograma acima para código C, iremos utilizar a estrutura de repetição do-while(<condição>) respeitando a seguinte estrutura geral.

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

<comando n + 1>;
<comando n + 2>;
...
<comando n + k>;

 

Na estrutura geral, os comandos <comando 1> até <comando n> serão executados enquanto a condição em while(<condição>) for verdadeira. Quando a condição for falsa, o programa seguirá executando os comandos <comando n+1> até <comando n+k>, do lado de fora do do-while. Desse modo, vamos colocar todos os comandos que irão se repetir dentro de uma estrutura do-while.

1 - Adicione uma variável inteira chamada opcao para fazer a leitura da escolha do usuário de continuar executando o programa

...
int t, opcao;
...

 

2 - Adicione a estrutura do-while para repetir os comandos que vão desde a entrada de dados até a saída do montante calculado:

int main()
{
...
    do
    {
        printf("Informe o capital inicial do investimento: ");
        scanf("%f", &c);
        printf("Informe a taxa de juros em porcentagem (%): ");
        scanf("%f", &i);
        printf("Informe o tempo da aplicação: ");
        scanf("%d", &t);

        m = c*pow((1-i), t);	    

        printf("Você resgatará o valor de R$ %.2f.", m);       
    }while(opcao != 1);
...
}

3 - Neste momento, precisamos ainda perguntar ao usuário se ele deseja continuar a executar o programa ou não. Isso deve ser feito antes do teste da condição do while. Altere o seu código para o seguinte:

...
    do
    {
        ...
        printf("Deseja continuar? 1- sim 2-não\n");
        scanf("%d", &opcao);
    }while(opcao != 1);
...

4 - Desse modo o programa irá executar os comandos dentro do bloco do-while enquanto opcao for diferente de 1. Teste o seu programa e verifque o resultado! Compare o código com o fluxograma.

 


Questões

Questão 1
Questão 2
Questão 3

Comentários...

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