Prova de Java - Fui mal

10 respostas
Dojs

Ae povo,

é treta java viu acho que fui mal ontem na prova mas ae me digam como fariam esse código:

Um banco concede financiamento a seus clientes, nas seguintes condições: O cliente recebe o valor do financiamento, e paga para o banco em parcelas. O valor de cada parcela é obtido dividindo-se o valor financiado pelo número de parcelas e, em seguida, acrescido de uma taxa de juros, que decresce 1% ao mês, ou seja, no primeiro mês a taxa é aquela informada pelo usuário e, no mês seguinte, esta mesma taxa é diminuída em 1%, e assim por diante, até o último mês. Escrever um programa em Java que solicite ao usuário:
[list]O valor do Financiamento,[/list]
[list]o número de parcelas,[/list]
[list]a taxa inicial de juros.[/list]

Em seguida, mostrar:
[list]o valor financiado,[/list]
[list]o número de parcelas,[/list]
[list]o valor de cada parcela e[/list]
[list]o valor total das parcelas.[/list]

Bem tive muita dificuldade de fazer isso e testei aqui no programa e não funcionou… então me mostrem um jeito bom de ser feito, tudo isso sem usar VETORES, ARRRAYS, e coisas complexas…

10 Respostas

T

Vetores e arrays não são coisas complexas. Acho é que você está com dificuldades em matemática, não em programação.

Outra coisa é que você precisa ter um método para identificar, no enunciado, como criar as variáveis. É preciso ler com atenção e ir rabiscando, em um pedaço de papel, durante a leitura. Leia várias vezes, e faça um rascunho, até entender completamente.

Quando você entender mais ou menos, comece a praticar com valores fixos, e pegue uma calculadora e faça algumas contas. É importante, para poder checar depois se seu programa está certo.
Tente com o valor de financiamento = $1000,00
Número de parcelas = 5
Taxa inicial de juros = 10% (0.1).

Valor da parcela = $1000 / 5 = $200:
Mês 1 : Parcela = $200 + juro; juro = 10% de $200 = 0.1 * 200 = $20. Logo a parcela = $220,00.
Mês 2: Parcela = $200 + juro: juro = (10% - 1%) = 9% de $200 = 0.09 * 200 = $18. Logo a parcela é $218,00.
Mês 3: Parcela = $200 + juro: juro = (9% - 1%) = 8% de $200 = 0.08 * 200 = $16. Parcela = $216,00
Mês 4: Parcela = $200 + juro: juro = (8% - 1%) = 7% de $200 = 0.07 * 200 = $14. Parcela = $214,00
Mês 5: Parcela = $200 + juro: juro = (7% - 1%) = 6% de $200 = 0.06 * 200 = $14. Parcela = $212,00

Somando tudo dá (220 + 218 + 216 + 214 + 212) = puxa vida, não vou fazer as contas para você.

(*Estou simplificando aqui, e calculando o juro sobre o valor da parcela.)

Isso quer dizer que você precisa criar algumas variáveis. Entre elas:

  • Valor do financiamento
  • Número de Parcelas
  • Taxa inicial de Juros
    Você viu que tive que definir uma variável que é o valor da parcela, e você deve entender que devo criar outra, para ir totalizando os juros.
T

Leia o programa a seguir, e leia-o com atenção.

/**
Um banco concede financiamento a seus clientes, nas seguintes condições: O cliente recebe o valor do financiamento, e paga para o banco em parcelas. O valor de cada parcela é obtido dividindo-se o valor financiado pelo número de parcelas e, em seguida, acrescido de uma taxa de juros, que decresce 1% ao mês, ou seja, no primeiro mês a taxa é aquela informada pelo usuário e, no mês seguinte, esta mesma taxa é diminuída em 1%, e assim por diante, até o último mês. Escrever um programa em Java que solicite ao usuário:
# O valor do Financiamento,
# o número de parcelas,
# a taxa inicial de juros.

Em seguida, mostrar:
# o valor financiado,
# o número de parcelas,
# o valor de cada parcela e
# o valor total das parcelas. 
*/
import java.util.Scanner;

class ProvaJava {
    public static void main(String[] args) {
        Scanner entrada = new Scanner (System.in);
        double valorFinanciamento;
        int numeroParcelas;
        double taxaInicialJuros;
        double taxaJuros;
        double valorParcela;
        double valorTotalParcelas;
        
        // Entradas
        System.out.println ("Entre com o valor do financiamento");
        valorFinanciamento = entrada.nextDouble();
        System.out.println ("Entre com o número de parcelas");
        numeroParcelas = entrada.nextInt();
        System.out.println ("Entre com a taxa inicial de juros, em porcentagem");
        taxaInicialJuros = entrada.nextDouble() / 100.0;
        // Saídas
        System.out.println ("Valor financiado: ");
        System.out.println (valorFinanciamento);
        System.out.println ("Número de parcelas");
        System.out.println (numeroParcelas);
        System.out.println ("Valor de cada parcela");
        // Calculando as parcelas
        taxaJuros = taxaInicialJuros;
        valorTotalParcelas = 0;
        for (int numeroParcelaAtual = 1; numeroParcelaAtual &lt= numeroParcelas; numeroParcelaAtual++) {
            /* O valor de cada parcela é obtido 
            dividindo-se o valor financiado pelo número de parcelas 
            e, em seguida, acrescido de uma taxa de juros... */
             valorParcela = (valorFinanciamento / numeroParcelas) * (1.0 + taxaJuros);
             /* ... uma taxa de juros, que decresce 1% ao mês, 
             ou seja, no primeiro mês a taxa é aquela informada pelo usuário 
             e, no mês seguinte, esta mesma taxa é diminuída em 1%, 
             e assim por diante, até o último mês. */
             taxaJuros = taxaJuros - 0.01; 
             System.out.println ("Valor da parcela " + numeroParcelaAtual);
             System.out.println (valorParcela);
             /* Agora estamos totalizando para achar o valor total das parcelas */
             valorTotalParcelas = valorTotalParcelas + valorParcela;
        }
        System.out.println ("Valor total das parcelas");
        System.out.println (valorTotalParcelas);
    }
}
D

Faltou um tratamento de erro. Se o usuario entrar com um numero de parcelas = zero, vai dar erro.
Enfim, as vezes pode-se dispensar o tratamento de erro se isso for explicitado no enunciado, mas como não foi, eu me preocuparia com isso também.

1112

Se o número de parcelas for zero, o código dentro do for não será executado, então não haverá erro.

bebad

:frowning: :-o
cara seu programa nao funciona ??? :shock:
as parcelas abaixam, elas nao deveriam aumentar ?

C:\Java\h\priv>java ProvaJava
Entre com o valor do financiamento
1000
Entre com o n·mero de parcelas
10
Entre com a taxa inicial de juros, em porcentag
10
Valor financiado:
1000.0
N·mero de parcelas
10
Valor de cada parcela
Valor da parcela 1
110.00000000000001
Valor da parcela 2
109.00000000000001
Valor da parcela 3
108.0
Valor da parcela 4
107.0
Valor da parcela 5
106.0
Valor da parcela 6
105.0
Valor da parcela 7
104.0
Valor da parcela 8
103.0
Valor da parcela 9
102.0
Valor da parcela 10
101.0
Valor total das parcelas
1055.0
T

Perguntinha - onde é que está escrito que o valor da parcela tem de aumentar? Só vi que está escrito “juro decrescente”.

Dojs

Ta certo o que o Thingol fez…

É tenho que pegar mais prática em java nos comandos e em POO pra conseguir ir melhor nas próximas tarefas da facu…

Mas ae agradeço a todos!
Abraços

Dojs

A Solução que o professor passou:

<blockquote>import javax.swing.*;

public class Nac01_questao01 {

public static void main(String arg[])

{

double valor_fin, valor_parc, valor_parc_juros, taxa, soma=0;

int num_parc;
valor_fin = Double.parseDouble(JOptionPane.showInputDialog("Valor financiado:"));
	taxa = Double.parseDouble(JOptionPane.showInputDialog("Taxa de juros:"));
	num_parc = Integer.parseInt(JOptionPane.showInputDialog("Nº Parcelas:"));
	
	valor_parc = valor_fin / num_parc;
	
	System.out.println("Valor financiado: " + valor_fin);
	System.out.println("Número de parcelas: " + num_parc);
	
	for (int j=0;j&lt;num_parc;j++) {
		valor_parc_juros = (valor_parc + valor_parc*taxa/100);
		soma += valor_parc_juros;
		taxa = taxa - taxa*0.01;
		System.out.println ("Parcela " + (j+1) + ":" + valor_parc_juros);
	}
	System.out.println ("Total do financiamento: " + soma);
}

}
>

T

Bom, o problema acima não precisava de nenhuma orientação a objetos. Dava para fazer em qualquer linguagem, basta seguir o enunciado.

Não pus tratamento de erros porque era para mostrar apenas as partes que importavam para o enunciado; senão teria de validar todas as entradas (evitar parcelas, juros negativos, etc.)

Dojs

Por mais que não precisasse, estou com um livro agora de POO com Java, tentar tirar o máximo de proveito pois Java só vou usar na faculdade e pra ter um diferencial, tive mais facilidade com C# e tenho me focado nisso mas muito obrigado ai pela ajuda…

Ainda irei tirar muitas dúvidas aqui viu…

Criado 13 de março de 2007
Ultima resposta 15 de mar. de 2007
Respostas 10
Participantes 5