#1 2. November 2008 hey, irgendwie komme ich bei meinem Programm nicht mehr weiter. Villeicht könnt ihr mir ja helfen. Code: package uebungNr04_KapitalV1_******; import uebungNr03_TRmitSchleifeV1_******.Tastatur; /** * KapitalV1 Berechnung des Kapitals nach Eingabe ueber die * Tastaturklasse von Anfangskapital, Zins und Laufzeit * * Features * 1. Eingabe Variable ueber Tastatur-Klasse * 2. Kopfgesteuerte Schleife (Programmwiederholung) * 3. Schleifen zur Plausibilitaets-Kontrolle der Eingaben * 4. Zweiseitige Auswahl if-else (erhoehter Zinssatz) * 5. Zweiseitige Auswahl if-else (Eingabefehler-Kommentar) * 6. Einseitige Auswahl if (Eingabefehler-Kommentar) * 7. ..... * * Aufgabenstellung: Verzinsung ihres Kapitels oder einfacher ausgedrueckt * Ueber welchen Geldbetrag können Sie am Ende der Laufzeit verfuegen? * Der DAU soll (mit Plausibilitätsprüfung) die Werte eingeben: * Sein verfügbares Anfangskapital zwischen 0 und 100 000 Euro, einen Zinssatz zwischen 0 und 20 Prozent (falls * der DAU mehr als 15 Prozent Zinsen eingibt, soll ein Hinweis erschenen "Bitte das Geld * nicht in Optionsscheinen bei einer Bank im Ausland anlegen, Sie :crazy:!")und die gewünschte Laufzeit (max. 50) in Jahren. * Falls der angelegte Wert über 70000 Euro liegt, wird ihm von der Bank noch ein Zinsbonus von 0,5% gewährt. * Am Ende jedes Jahres soll der Kontostand (gerundet auf zwei Stellen) angezeigt werden. * Der DAU soll die Berechnungen mehrfach durchführen können bzw. dürfen (anspruchsvolle Erweiterung: maximal 3 Berechnungen). * Berechnungstipps: * faktor = (100.0 + zinssatzInProzent) / 100.0; * kapitalAktuell = kapitalAktuell * faktor; * * @author Herr ****** * @author ****** * @version Version 01 vom 27.10.2008 */ public class uebungNr04_KapitalV1_****** { public static void main(String[] args) { // Deklarieren von Variablen double anfangsKapital; // z.B. 10000 Euro double zinssatzInProzent; // z.B. 5% double faktor; // Multiplikator fürs Kapital double kapitalAktuell; int laufzeit; // Laufzeit in Jahren char nochEineBerechnung; // Wiederholung der Berechnung // Wertzuweisung der Variablen nochEineBerechnung='j'; // Vorbelegen wegen while while(nochEineBerechnung=='j') {// Anfang while anfangsKapital=-1; // Vorbelegen wegen while zinssatzInProzent=-1; // Vorbelegen wegen while //laufzeit=1; // Vorbelegen wegen while //anfang anfangsKapital System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): "); anfangsKapital=Tastatur.leseKommazahl(); while(anfangsKapital<=0 || anfangsKapital>100000) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): "); anfangsKapital=Tastatur.leseKommazahl(); }// end while anfangsKapital System.out.println("Ihr Startkapital beträgt: "+anfangsKapital+"€"); //ende anfangsKapital //anfang zinssatzInProzent System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: "); zinssatzInProzent=Tastatur.leseKommazahl(); while(zinssatzInProzent<=0 || zinssatzInProzent>20) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: "); zinssatzInProzent=Tastatur.leseKommazahl(); }// end while zinssatzInProzent System.out.println("Ihr Zinssatz beträgt: "+zinssatzInProzent+"%"); //ende zinssatzInProzent //anfang laufzeit System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): "); laufzeit=Tastatur.leseZahl(); while(laufzeit<=0 || laufzeit>20) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): "); laufzeit=Tastatur.leseZahl(); }// end while laufzeit System.out.println("Ihre Laufzeit beträgt: "+laufzeit+" Jahr(e)"); //ende laufzeit // Berechnung der Ergebnisse faktor = (100.0 + zinssatzInProzent) / 100.0; if(anfangsKapital >70000){ kapitalAktuell = (faktor+0.5*(anfangsKapital)); }//end if else { kapitalAktuell= (faktor*anfangsKapital); }//end else // Ausgabe der Ergebnisse auf der Konsole System.out.println("Ihr Kapital beträgt "+kapitalAktuell+""); // Noch eine Berechnung? System.out.println("Wollen Sie noch Eine Berechnung durchführen? (Ja=j; Nein=n)"); nochEineBerechnung=Tastatur.leseZeichen(); }// end while nochEineBerechnung System.out.println("Sie haben das Programm beendet!"); } // end main } // end class Schonmal Danke greetz + Multi-Zitat Zitieren
#2 2. November 2008 AW: Java - brauche Hilfe bis auf die eingabe über tastatur zeigt er mir keinen fehler an das liegt aber daran dass ich die klasse nicht habe. wäre nett, wenn du nähere infos posten könntest, wo es bei dir zu fehlern kommt ansonsten siehts erstma ok aus greetz EDIT Hab den Code jetzt nen bisschen an meine eingabe angepasst: Code: import java.io.*; /** * * @author Terranier */ public class probe { public static void main(String[] args) throws Exception { BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); // Deklarieren von Variablen double anfangsKapital; // z.B. 10000 Euro double zinssatzInProzent; // z.B. 5% double faktor; // Multiplikator fürs Kapital double kapitalAktuell; int laufzeit; // Laufzeit in Jahren String nochEineBerechnung; // Wiederholung der Berechnung // Wertzuweisung der Variablen nochEineBerechnung="j"; // Vorbelegen wegen while while(nochEineBerechnung=="j") {// Anfang while anfangsKapital=-1; // Vorbelegen wegen while zinssatzInProzent=-1; // Vorbelegen wegen while //laufzeit=1; // Vorbelegen wegen while //anfang anfangsKapital System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): "); anfangsKapital=Double.parseDouble(input.readLine()); while(anfangsKapital<=0 || anfangsKapital>100000) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): "); anfangsKapital=Double.parseDouble(input.readLine()); }// end while anfangsKapital System.out.println("Ihr Startkapital beträgt: "+anfangsKapital+"€"); //ende anfangsKapital //anfang zinssatzInProzent System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: "); zinssatzInProzent=Double.parseDouble(input.readLine()); while(zinssatzInProzent<=0 || zinssatzInProzent>20) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: "); zinssatzInProzent=Double.parseDouble(input.readLine()); }// end while zinssatzInProzent System.out.println("Ihr Zinssatz beträgt: "+zinssatzInProzent+"%"); //ende zinssatzInProzent //anfang laufzeit System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): "); laufzeit=Integer.parseInt(input.readLine()); while(laufzeit<=0 || laufzeit>20) {// Anfang while System.out.println("Fehleingabe!"); System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): "); laufzeit=Integer.parseInt(input.readLine()); }// end while laufzeit System.out.println("Ihre Laufzeit beträgt: "+laufzeit+" Jahr(e)"); //ende laufzeit // Berechnung der Ergebnisse faktor = (100.0 + zinssatzInProzent) / 100.0; if(anfangsKapital >70000){ kapitalAktuell = (faktor+0.5*(anfangsKapital)); }//end if else { kapitalAktuell= (faktor*anfangsKapital); }//end else // Ausgabe der Ergebnisse auf der Konsole System.out.println("Ihr Kapital beträgt "+kapitalAktuell+""); // Noch eine Berechnung? System.out.println("Wollen Sie noch Eine Berechnung durchführen? (Ja=j; Nein=n)"); nochEineBerechnung = input.readLine(); }// end while nochEineBerechnung System.out.println("Sie haben das Programm beendet!"); } // end main } // end class das programm funzt jetzt wunderbar... + Multi-Zitat Zitieren
#3 2. November 2008 AW: Java - brauche Hilfe ja ein fehler habe ich nicht das läuft aber ich weiß echt nicht wie ich das hin bekomme dass der mir jedes jahr einzeln anzeigt und überhaupt versteh ich die rechnung ned ganz die ich machen muss^^ und wie bekomm ich das hin dass der mir sagt wenn ich z.B "k" eingebe wenn er fragt neue berechnung dass er sagt "Fehleingabe" und dann noch mal fragt? greetz + Multi-Zitat Zitieren
#4 2. November 2008 AW: Java - brauche Hilfe ich würde empfehlen, dass du mehr mit methoden arbeitest. dh du schreibst deine rechnungen bspw in eine methode berechnung. die kannst du dann durch den befehl berechnung() beliebig oft aufrufen, zum beispiel wenn eine bestimmte bedingung erfüllt wird. das hat den vorteil, dass du den ganzen code nur einmal schreiben, aber beliebig oft verwenden kannst. du müsstest die ausgabe dann in die if-anweisung schreiben ist doch aber alles ganz gut kommentiert!?! was verstehste denn daran nicht? + Multi-Zitat Zitieren
#5 2. November 2008 AW: Java - brauche Hilfe also das mit den metoden haben wir noch ned also muss ich so machen das mit if muss ich mal testen ich versteh ned was ich rechnen muss und weiß ned ob die rechnung so stimmt wie sie da ist greetz edit: mit den jahren wenn ich das mit if mache müsst ich ja für jedes jahr machen?!? edit2: bei der laufzeit stimmt auch was ned der nimmt nur zahlen von 1-9 also "35" nimmt der ned + Multi-Zitat Zitieren
#6 4. November 2008 AW: Java - brauche Hilfe Zinsen werden ja pro jahr berechnet das heißt wenn du 5% Zinsen hast hast du nach dem ersten Jahr: Anfangskapital +Anfangskapital*0.05 das ist das gleiche wie Anfangskapital*1.05 wenn du jetzt das Kapital von nächsten Jahr ausrechnen wilst musst du dein Aktuelles Kapital wieder mit 1.05 mal nehmen dabei würde für z.b. 30 Jahre so etwas rauskommen: Anfangskapital*1.05^30 wobei ^30 hoch 30 sein soll Willst du das jetzt für jedes Jahr ausgeben würde ich dir raten darum einfach wieder eine Schleife zu legen also für jedes Jahr wieder das berechnen und ausgeben. Dann fehlt nurnoch eine If Abfrage ob bereits 700000 überschritten wurden und noch einmal die 0.5 % drauf rechnen. Das wäre der Mathematische Aspekt dieser Aufgabe + Multi-Zitat Zitieren