Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo zusammen,
Ich habe ein Problem, wie kann ich folgende Formel in Java umsetzen: C0 = ∑t=0 (Et – At) * 1/(1+i)t , wobei E für Einzahlung steht, A für Auszahlung, i für den Zins und t für die jeweilige Periode.
Ich habe schon probiert, aber irgendwie fehlerhaft
Hier ist Code
Code:
import java.math.*;
public class Auszahlung {
private double einzahlung;
private double auszahlung;
private static final double ZINS = 1.03;
public double getEinzahlung(){
return einzahlung;
}
public double getAuszahlung(){
return auszahlung;
}
public void setEinzahlung(double einzahlung){
this.einzahlung = einzahlung;
}
public void setAuszahlung(double auszahlung){
this.auszahlung = auszahlung;
}
public double mult(double einzahlung, double auszahlung, int potenz){
return ((einzahlung - auszahlung) * pow(ZINS, potenz));
}
public void open(){
System.out.println("Auszahlung: " + auszahlung);
System.out.println("Einzahlung: " + einzahlung);
}
public Auszahlung(){
}
public static void main(String[] args) {
Auszahlung a = new Auszahlung();
a.open();
}
}
wo liegt denn Dein Problem?
Die Formel zu implementieren oder die richtigen Methoden zu implementieren, bzw. in der richtigen Reiuhenfolge aufzurufen?
in deiner main Methode erzeugst Du eine Klasse Auszahlung, und rufst die open() Methode die lediglich zwei println in sich hat ... keine Berechnungen etc. Ausserdem sind die Variablen die die println ANweisungen aufrufen gar nicht initialisiert.
damit eine methode was tut muss sie auch aufgerufen werden.
Mein Problem ist zuerst richtig die Methode pow aus der Klasse java.math benutzen, weil gerade dort gibt es ein Problem, Eclipse schreibt mir, das Methode pow() nicht definiert für Typ Auszahlung (meine Klasse), und wenn ich multipliziere Differenz aus Einzahlung und Auszahlung mit der Methode pow, dann muss ich noch alle diese Werte aufsummieren. Wenn meine Methode fertig ist, muss ich sie in GUI-Klasse anwenden, wo ich 20 Textfelder jeweils Einzahlungen und Auszahlungen habe, die nicht alle aufgefühlt, das bedeutet Programm muss zuerst prüfen welche Textfelder ausgefühlt und dann Methode aus meiner Klasse (Auszahlung) verwenden.
Wie kann ich das alles richtig machen. Muss ich in Klasse Auszahlung Array für Einzahlungen und Auszahlungen benutzen und dann genau so in GUI-Klasse oder da gibt es leichterer Weg
Danke
Mein Problem ist zuerst richtig die Methode pow aus der Klasse java.math benutzen, weil gerade dort gibt es ein Problem, Eclipse schreibt mir, das Methode pow() nicht definiert für Typ Auszahlung (meine Klasse), und wenn ich multipliziere Differenz aus Einzahlung und Auszahlung mit der Methode pow, dann muss ich noch alle diese Werte aufsummieren. Wenn meine Methode fertig ist, muss ich sie in GUI-Klasse anwenden, wo ich 20 Textfelder jeweils Einzahlungen und Auszahlungen habe, die nicht alle aufgefühlt, das bedeutet Programm muss zuerst prüfen welche Textfelder ausgefühlt und dann Methode aus meiner Klasse (Auszahlung) verwenden.
Wie kann ich das alles richtig machen. Muss ich in Klasse Auszahlung Array für Einzahlungen und Auszahlungen benutzen und dann genau so in GUI-Klasse oder da gibt es leichterer Weg
Danke
ich nehme an die Methode ist static also musst du:
Code:
Math.pow(dobleA,doubleB);
schreiben damit der Copiler sie auch findet.
1. Mach dass jede Auszahlung ein anderes Objekt ist z.B.
2. streich mal die eingabeparameter in mult() weg, und Initialisiere die Auszahlung mit den Werten die DU sonst mult() übergibst. Sprich mach einen Konstruktor in AUszahlung der die Felder belegt.
Speichern kannst Du die objekte von mir aus in Arrays oder was eben sinnvoll ist. und dann als einziges obj.mult(); ausführen ...
Hallo,
also ich glaube die Methode ist das kleinste Problem.
Du rufst sie nur falsch auf. wenn du pow(Wert,Wert) aufrufst, dann sucht der Compiler nach der Methode pow(), welche in deinem Programm implementiert sein müsste.Ist sie aber nicht, deshalb musst Du Math.pow(Wert,Wert) aufrufen, damit er weiß welche Methode.
Aber damit kommst du so auch nicht weiter, es sind gravierende Fehler in deinem Programm.
Gruß
Hallo,
Ich habe ein neues Problem. Wo habe ich im folgenden Code Fehler. Mein Programm berechnet ein Kapitalwert. Es gibt als Ergebnis irgendwelche Zeichen
Code:
import java.math.*;
public class Auszahlung{
private double[] einzahlung;
private double[] auszahlung;
private static final double ZINS = 1.03;
public double[] getEinzahlung(){
return einzahlung;
}
public double[] getAuszahlung(){
return auszahlung;
}
public void setEinzahlung(double[] einzahlung){
this.einzahlung = einzahlung;
}
public void setAuszahlung(double[] auszahlung){
this.auszahlung = auszahlung;
}
public double berechnen(double[] einzahlung, double[] auszahlung){
double sum = 0;
int i, j, potenz;
for(i = 0; i < auszahlung.length; i++){
for(j = 0; j < einzahlung.length; j++){
for(potenz = 0; potenz < einzahlung.length; potenz++){
sum += ((einzahlung[j] - auszahlung[i]) * Math.pow(ZINS, einzahlung[potenz]));
}
}
}
return sum;
}
public static void main(String[] args){
double[] einzahlung = {0.0, 100.0, 200.0, 200.0};
double[] auszahlung = {200.0, 50.0, 50.0, 50.0};
System.out.println("\nEinzahlungen: " + einzahlung);
System.out.println("\nAuszahlungen: " + auszahlung);
}
}
Hallo,
also dieser Code kann auch Dein gewünschtes Ergebnis nicht liefern.
In der main Methode definistert Du ja nur zwei Felder, machst aber nichts weiteres dann, als die Adresse dieser auszudrucken.
Warscheinlich willst Du die Werte in den Feldern mit der Methode berechne() verarbeiten. Dazu mußt Du die Methode aufrufen und
ihr Werte übergeben.
z.B.
Code:
Auszahlung neu = new Auszahlung(); neu.berechne(einzahlung,auszahlung);
Habe mich glaube ich verlesen, sorry. Wenn Du die Summe der Einzahlungen und die Summe der Auszahlungen ausdrucken willst, dann mußt Du die Felder einzahlung und auszahlung wie oben in der Methode berechnen() mit Schleifen durchlaufen und die double Werte
zusammenzählen.
Code:
double sum = 0;
for(i = 0; i < auszahlung.length; i++){
sum+= auszahlung[i];
}
Mir ist allerdings nicht ganz klar was Du machen willst.
Hallo,
Mein Programm muss nach der Formel C0 = ∑t=0 (Et – At) * 1/(1+i)t, wobei E für Einzahlung steht, A für Auszahlung, i für den Zins und t für die jeweilige Periode (t ist Potenz) Kapitalwert berechnen
Code:
import java.math.*;
public class Auszahlung{
private double[] einzahlung;
private double[] auszahlung;
private static final double ZINS = 1.03;
public double[] getEinzahlung(){
return einzahlung;
}
public double[] getAuszahlung(){
return auszahlung;
}
public void setEinzahlung(double[] einzahlung){
this.einzahlung = einzahlung;
}
public void setAuszahlung(double[] auszahlung){
this.auszahlung = auszahlung;
}
public double berechnen(double[] einzahlung, double[] auszahlung){
double sum = 0;
int i, j, potenz;
for(i = 0; i < auszahlung.length; i++){
for(j = 0; j < einzahlung.length; j++){
for(potenz = 0; potenz < einzahlung.length; potenz++){
sum += ((einzahlung[j] - auszahlung[i]) * (1 / Math.pow(ZINS, einzahlung[potenz])));
}
}
}
return sum;
}
public static void main(String[] args){
double[] einzahlung = {0.0, 100.0, 200.0, 200.0};
double[] auszahlung = {200.0, 50.0, 50.0, 50.0};
Auszahlung a = new Auszahlung();
System.out.println(a.berechnen(einzahlung, auszahlung));
}
}