Problem bei der Ausgabe

Status
Nicht offen für weitere Antworten.

bsargl7.

Mitglied
ich habe ein Problem bei den gebautenAutos. Bei der Ausgabe kommt für jedes Jahr
10000 raus. Es muss ja aber immer mehr werden. Wo liegt der Fehler ?
mein absatz ist übrigens 10000
und die Steigerung = 5
[CODE lang="java" title="Investiton"]

public void bilanzier(){
gebauteAutos= absatz;
while ( investGeld>reingewinn){

for (int i = 0; i <absatz; i++){
gebauteAutos += steigerung/100;
}
jahr++;


System.out.println("Anzahl der gebauten Autos : " +gebauteAutos);
}
}[/CODE]
 
Lass dir mal ausgeben, was steigerung/100 ergibt 🙂


Und generell sieht die Schleife etwas merkwürdig aus, sicher, dass das dem in der Aufgabe gefordertem entspricht?
 
Ich nehme an, dass gebauteAutos und steigerung beide vom Typ int sind.

Dann ist steigerung / 100 eine int Berechnung. und 5 / 100 ist 0,05 was bei int schlicht 0 ist.
Selbst wenn steigerung eine float oder double wäre und nur gebauteAutos ein int: da wprde dann halt 0 addiert.
 
Ich nehme an, dass gebauteAutos und steigerung beide vom Typ int sind.

Dann ist steigerung / 100 eine int Berechnung. und 5 / 100 ist 0,05 was bei int schlicht 0 ist.
Selbst wenn steigerung eine float oder double wäre und nur gebauteAutos ein int: da wprde dann halt 0 addiert.
Das ist mein Konstruktor
[CODE lang="java" title="Investiton"]public class Investition
{

private double kosten = 23500;
private double invest = 100000000;
private int absatz = 10000;
private double steigerung = 5;
private double preis = 24950;
private int jahr;
private double umsatz;
private double herstellungskosten;
private int gebauteAutos;
private double reingewinn;

[/CODE]
 
Hier ist der gesamte Code für die Methode und die Aufgabe zu entnehmen

Java:
public class Investition
{

    private double kosten = 23500;
    private double invest = 100000000;
    private int absatz = 10000;
    private double steigerung = 5;
    private double preis = 24950;
    private int jahr;
    private double umsatz;
    private double herstellungskosten;
    private int gebauteAutos;
    private double reingewinn;
// Aufgabe : Schreiben Sie ein Methode void bilanzier(), die für jedes Jahr ausgeben soll wie
//viele Autos voraussichtlich gebaut werden, wie hoch die Herstellungskosten für alle sind,
//mit welchem Umsatz gerechnet wird und wie hoch der Reingewinn (Umsatz minus
//Herstellungskosten) in diesem Jahr und über alle Produktionsjahre ist. Die Methode soll
//stoppen, sobald die Gewinnzone erreicht worden ist.
   
      public void bilanzier(){
        gebauteAutos = absatz;
        double investGeld= getInvest();
        double reingwinngewinn = 0;
        double herstellungskosten= 0;
        double umsatz= 0;
        int jahr =0;
       
        while ( investGeld>reingewinn){

            for (int i = 0; i <absatz; i++){
                gebauteAutos += steigerung/100;
                herstellungskosten += getKosten();
                umsatz += getPreis();
                reingewinn += getPreis()-getKosten();
               
            }
            jahr++; //Jahre hochzählen
           
            //Gebe die Werte aus
            System.out.println ("Für Jahr : " +jahr);
            System.out.println("Anzahl der gebauten Autos : " +gebauteAutos);
            System.out.println ("Umsatz in Euro : " +umsatz);
            System.out.println ("Herstellungskosten in Euro:" +herstellungskosten);
            System.out.println ("Reingewinn in Euro : " +reingewinn);
            System.out.println ("--------------------------------------");
        }
 
GebauteAutos ist ein int. Was für Zahlen kann ein int speichern? Was addiert du da also in der Schleife immer dazu?

Ich habe es ja bereits geschrieben....
 
Neuer Thread, neues Glück?
Ich bin zu faul einen anderen Thread auch noch zu lesen ... Steigerung gibt eine Steigerung in Prozent an nehme ich an?

Dann wäre das Kernthema: Prozentrechnung.

Was ist x Prozent von einer Anzahl a? Kannst Du das berechnen?
 
Also den Thread hier am besten dicht machen - das ganze Thema ist im anderen Thread ja schon im Detail erläutert worden.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben