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)t
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.