Fórum Problemas com while #230772

07/05/2004

0

Olá pessoal to fazendo um programa e colocarei o enunciado do exercicio, e nao consigo resolver, é o seguinte:

Faça um programa que peça o salário do cliente, o valor desejado do empréstimo e responda qual o menor tempo em anos para o pagamento e o valor da parcela, usando as seguintes diretivas:

- O valor da parcela não pode ultrapassar 30¬ do valor do salário;

- Use o juro de 2¬ ao mês;

- Cálculo do Juro: Capital x Taxa x Tempo / 100;

- Cálculo do Montante: Capital + Juro;

- Cálculo da Parcela: Montante / Tempo;

- Taxa e Tempo tem que ser compatíveis: Mês/Mês, Ano/Ano;

- Use tempos de 1 a 20 anos;

- Caso o cliente nao possua renda necessária para o valor do emprestimo, o sistema deve dar uma mensagem avisando;

É o seguinte, no caso do Tempo, o tempo do cálculo do juro, nao é o mesmo do calculo da parcela, pelo seguinte motivo, nao sei pq o professor quer que seja calculado o juro somente até 4 anos, e depois nao aumente mais o juro e o outro tempo é o tempo que levará pra pagar o emprestimo, em até 20 anos (240 meses) pode ser o tempo é claro, eu colocarei aqui o código fonte, só que to com 1 problema num while e algumas permissoes que nao funcionam;

--------------------------------------------------------------------------------------

var
  Form1: TForm1;
  salario, emprestimo, cont_tempo1, cont_tempo2, taxa, calc_juro, calc_montante, calc_parcela, calc_porcentagem : real;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
salario := StrToFloat(Edit1.Text);
emprestimo := StrToFloat(Edit2.Text);
cont_tempo1 := 12;
cont_tempo2 := 12;
calc_porcentagem := salario * 0.30;

while (cont_tempo1 <= 48) and (cont_tempo2 <= 48) do
begin
calc_juro := emprestimo * 2 * cont_tempo1 / 100;
calc_montante := emprestimo + calc_juro;
calc_parcela := calc_montante / cont_tempo2;
cont_tempo1 := cont_tempo1 + 12;
cont_tempo2 := cont_tempo2 + 12;
end;
while (calc_parcela >= calc_porcentagem) do
begin
while (cont_tempo2 > 48) do
begin
calc_montante := emprestimo + calc_juro;
calc_parcela := calc_montante / cont_tempo2;
cont_tempo2 := cont_tempo2 + 12;
end;
end;
edit3.text := FloatToStr(calc_parcela);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.clear;
edit2.clear;
edit3.clear;
edit4.clear;
edit1.setfocus;
end;

end.


As duvidas sao as seguintes:

Como fazer o delphi dizer q quando a parcela for igual ou menor que os 30¬ do salario, ele pare o while de calcular e mostre 1 mensagem na tela ou num edit o valor da parcela?

Não consigo também fazer parar de calcular quando chega em 20 anos, no código tinha tentado por no while que tem > 48 por tb <=240 mas nao deu certo

como verifico se após 20 anos o programa mostre mensagem caso nao possa pagar o emprestimo, ouseja a parcela seja maior que 30¬ do salário, com o código pode ser que me ajudem, obrigado, o calculo ta OK, mas nao consigo por as permissoes do programa.

Desde já agradeço a ajuda.


Diegobarcelos

Diegobarcelos

Responder

Posts

08/05/2004

Aroldo Zanela

Colega,

Os testes condicionais devem ser feitos por IFs ao invés de criar novos laços while..do. Não entendi se é para capitalizar (juros compostos) ou se é juros simples (parece que sim)?
Outra coisa, como você é aluno de graduação, não seria mais adequado desenvolver OO?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar