# BreakEvenPoint berechnen



## bsargl7. (14. Nov 2021)

Hallo,
 ich muss eine Abgabe beenden, jedoch habe ich in einer Aufgabe Probleme bzw. habe ein Problem es umzusetzen.  
Die Aufgabe lautet: 
Ein Autokonzern investiert in die Entwicklung eines neuen Modells einen bestimmten Investitionsbetrag, hier z. B. 100 000 000 €. Für die Produktion eines Autos fallen Kosten in der Herstellung an, beispielsweise 23 500 €. Am Markt ist ein bestimmter Preis für das fertige Auto erzielbar, z. B. 24 950 €. Am Markt sind eine bestimmte Anzahl an Autos absetzbar, z. B. 10000 im ersten Jahr und in jedem Folgejahr 5 % mehr. Programmieren Sie eine Klasse Investition mit einem Konstruktor bei dem folgende Werte gesetzt sind (invest=100000000., kosten=23500., preis=24950., absatz=10000, steigerung=5.) und einem, bei dem alle Werte als Übergabeparameter übergeben werden können.

Den Konstruktor habe ich schon bereits fertiggestellt.  (Siehe Datei) 
Die Aufgabe in der ich Probleme habe ist: 
Programmieren Sie eine Methode int breakEven(). Diese soll berechnen, nach wieviel Jahren die Gewinnschwelle (break-even-point) erreicht wurde. Sie sollen dabei nur ganze Jahre betrachten. Achten Sie auf die Absatzsteigerung.

Ich habe die Methode aufgestellt und die Rechnung zunächst erstmal handschriftlich getan. 

Rechnung (handschriftlich) : 
 invest+(kosten*absatz) = Gesamtkosten(in diesem Beispiel 335000000)

und die Gesamtkosten dann habe ich geschaut ab wie viel Jahren der Gewinn beginnt.
1 Jahr : absatz * preis = Gewinn des 1 Jahres
2 Jahr: Gewinn 1 Jahr /100*105 = Gewinn des 2 Jahres
3 Jahr: Gewinn 2 Jahr / 100*105
....
usw. 

Ich bin hier auf 8 Jahre gekommen jedoch finde ich die Rechnung die ich schriftlich durgeführt habe, schwer in Bluej umzusetzen. Oder hat einer eine Idee, wie ich die Formel in eine Gleichung packe ? 

P.s. Meinen aktuellen Code ist hier zu entnehmen. Habe auch im Code ein Kommentar hinterlassen.


----------



## mihe7 (14. Nov 2021)

bsargl7. hat gesagt.:


> Den Konstruktor habe ich schon bereits fertiggestellt.


Der zweite fehlt und x brauchst Du an der Stelle nicht (und auch nicht als Instanzvariable).



bsargl7. hat gesagt.:


> (Siehe Datei)


Code bitte nicht als Screenshot (im Editor auf </> klicken, dort einfügen)



bsargl7. hat gesagt.:


> Die Aufgabe in der ich Probleme habe ist:
> Programmieren Sie eine Methode int breakEven().


Du kannst in der Methode lokale Variablen deklaren (z. B. Dein x, wobei Du aussagekräftige Bezeichner wählen solltest). Dann gibt es z. B. die Möglichkeit, Schleifen zu verwenden. 

Natürlich könntest Du alles in eine Formel packen: 

investition = absatz*preis*1,05^jahr    <=>   investition/(absatz*preis) = 1,05^jahr => jahr = log_{1,05} (investition/(absatz*preis))

Aber ich denke mal nicht, dass Du das so ausrechnen sollst


----------



## Blender3D (14. Nov 2021)

bsargl7. hat gesagt.:


> ch bin hier auf 8 Jahre gekommen jedoch finde ich die Rechnung die ich schriftlich durgeführt habe, schwer in Bluej umzusetzen. Oder hat einer eine Idee, wie ich die Formel in eine Gleichung packe ?


[CODE lang="java" title="Invest"]public class Invest {
    private double kosten = 23500;
    private double invest = 100000000;
    private double absatz = 10000;
    private double steigerung = 5;
    private double preis = 24950;

    public int breakEven() {
        int jahr = 0;
        double gewinn = preis - kosten;
        int absatzBedarf = (int) Math.ceil(invest / gewinn);
        double absatzSum = 0;
        System.out.println("Absatzbedarf fuer Breakeven " + absatzBedarf);
        do {
            double absatz = getAbsatzImJahr(jahr);
            System.out.println("Absatz im Jahr " + (jahr + 1) + " " + (int) absatz);
            absatzSum += absatz;
            jahr++;
        } while (absatzSum < absatzBedarf);
        System.out.println("Absatz nach " + (jahr+1) + " Jahren " + (int) absatzSum);
        return jahr + 1;
    }

    public double getAbsatzImJahr(int jahr) {
        return 10000 * Math.pow((steigerung / 100 + 1), jahr);
    }

}[/CODE]


----------



## bsargl7. (14. Nov 2021)

mihe7 hat gesagt.:


> Der zweite fehlt und x brauchst Du an der Stelle nicht (und auch nicht als Instanzvariable).
> 
> 
> Code bitte nicht als Screenshot (im Editor auf </> klicken, dort einfügen)
> ...


Hallo, ok ich danke dir für die Hilfe . Ich bin erst neu hier und muss mich noch hineinfuchsen.


----------



## bsargl7. (14. Nov 2021)

Blender3D hat gesagt.:


> [CODE lang="java" title="Invest"]public class Invest {
> private double kosten = 23500;
> private double invest = 100000000;
> private double absatz = 10000;
> ...


Dankeschön


----------

