# Preisliste durch Arrays erzeugen



## ekago (14. Dez 2014)

Ich weiß leider nicht mal wie ich die Aufgabe überhaupt angehen soll ich hab alle Skripte die mit Arrays zu tun haben durchgelesen aber leider ist die aufgabe mir viel zu hoch

Für ein Restaurant sollen Sie eine Preisliste für bis zu 20 Kebab schreiben. Der Preis pro Döner
Kebab beträgt 3,20 € und für je 3 Döner Kebab gibt es zusätzlich ein Fladenbrot umsonst dazu.
Weil die Preise sich im harten Konkurrenzkampf schnell ändern können, ist es besser, die Liste von
einem Computer erstellen zu lassen.
Erstellen Sie ein Programm, das eine passende Preisliste erzeugt. Beispielausgabe:

1 Kebab und 0 Fladenbrot(e) kosten 3,20 Euro.
2 Kebab und 0 Fladenbrot(e) kosten 6,40 Euro.
3 Kebab und 1 Fladenbrot(e) kosten 9,60 Euro.
4 Kebab und 1 Fladenbrot(e) kosten 12,80 Euro.
5 Kebab und 1 Fladenbrot(e) kosten 16 Euro.
6 Kebab und 2 Fladenbrot(e) kosten 19,20 Euro.


muss ich da was Arraylist machen oder macht man das über eine Tabelle ??:bahnhof:


----------



## lucien (14. Dez 2014)

```
public class Döner
{
    int x=1;
    public Döner()
    {
       while(x<=20){
           System.out.println(x+" Kebab "+(x/3)+" Fladenbrote kosten "+(x*3.20)+"€");
           x++;
    }

  
    }
}
```

Das ist der Code. Du erhöhst die anzahl der Kebab immer um eins dividierst es durch 3(Fladenbrote) und multiplizierst es mit 3,20(Preis). Jetzt musst du nur noch gucken, wie du die Nachkommastellen abschneidest.


----------



## ekago (14. Dez 2014)

schau mal dank deines ansatzes habe ich es gelöst sieht auch gar nicht so schlecht aus nur bei der ausgabe kommen kommazahlen raus was mich wundert da ich ja int als typ benutzt habe



```
public static void main (String[] args) {
	 int x=1;	
	 int y=x/3;	 
	 if (x%3<0)
		 y=0;
	 for (x=1;x<=20; x++){
	System.out.println(x+" "+ "Kebab und"+ " "+y+" "+"Fladenbrot kosten"+ " "+ (x*3.2)+ "€" );
		
	}
```


```
1 Kebab und 0 Fladenbrot kosten 3.2€
2 Kebab und 0 Fladenbrot kosten 6.4€
3 Kebab und 0 Fladenbrot kosten 9.600000000000001€
4 Kebab und 0 Fladenbrot kosten 12.8€
5 Kebab und 0 Fladenbrot kosten 16.0€
6 Kebab und 0 Fladenbrot kosten 19.200000000000003€
7 Kebab und 0 Fladenbrot kosten 22.400000000000002€
8 Kebab und 0 Fladenbrot kosten 25.6€
9 Kebab und 0 Fladenbrot kosten 28.8€
10 Kebab und 0 Fladenbrot kosten 32.0€
11 Kebab und 0 Fladenbrot kosten 35.2€
12 Kebab und 0 Fladenbrot kosten 38.400000000000006€
13 Kebab und 0 Fladenbrot kosten 41.6€
14 Kebab und 0 Fladenbrot kosten 44.800000000000004€
15 Kebab und 0 Fladenbrot kosten 48.0€
16 Kebab und 0 Fladenbrot kosten 51.2€
17 Kebab und 0 Fladenbrot kosten 54.400000000000006€
18 Kebab und 0 Fladenbrot kosten 57.6€
19 Kebab und 0 Fladenbrot kosten 60.800000000000004€
20 Kebab und 0 Fladenbrot kosten 64.0€
```


----------



## ekago (14. Dez 2014)

sorry ich meinte das so


```
public static void main (String[] args) {
	int x=1;	
	for (x=1;x<=20; x++){
	 int y=x/3;	 
	 if (x%3<0)
		 y=0;
	 
	System.out.println(x+" "+ "Kebab und"+ " "+y+" "+"Fladenbrot kosten"+ " "+ (x*3.2)+ "€" );
		
	}
```


```
1 Kebab und 0 Fladenbrot kosten 3.2€
2 Kebab und 0 Fladenbrot kosten 6.4€
3 Kebab und 1 Fladenbrot kosten 9.600000000000001€
4 Kebab und 1 Fladenbrot kosten 12.8€
5 Kebab und 1 Fladenbrot kosten 16.0€
6 Kebab und 2 Fladenbrot kosten 19.200000000000003€
7 Kebab und 2 Fladenbrot kosten 22.400000000000002€
8 Kebab und 2 Fladenbrot kosten 25.6€
9 Kebab und 3 Fladenbrot kosten 28.8€
10 Kebab und 3 Fladenbrot kosten 32.0€
11 Kebab und 3 Fladenbrot kosten 35.2€
12 Kebab und 4 Fladenbrot kosten 38.400000000000006€
13 Kebab und 4 Fladenbrot kosten 41.6€
14 Kebab und 4 Fladenbrot kosten 44.800000000000004€
15 Kebab und 5 Fladenbrot kosten 48.0€
16 Kebab und 5 Fladenbrot kosten 51.2€
17 Kebab und 5 Fladenbrot kosten 54.400000000000006€
18 Kebab und 6 Fladenbrot kosten 57.6€
19 Kebab und 6 Fladenbrot kosten 60.800000000000004€
20 Kebab und 6 Fladenbrot kosten 64.0€
```


----------



## stg (14. Dez 2014)

3.2 ist kein Integer.


----------



## ekago (15. Dez 2014)

Das verstehe ich nicht. Hab doch überall int stehen


----------



## Flown (15. Dez 2014)

Wenn du es verstehen willst, dann nennt sich das Widening Primitive Conversion. 

Beispiel:

```
int i = 3; double j = 2.0;
??? k = i + j; //??? würde ein double ergeben
```

Das heißt es werden bei der JVM Typkonvertierungen durchgeführt und bei diesem Fall ist double der common type der implizit gewählt wird.


----------



## ekago (15. Dez 2014)

ja ich hab mir das durchgelesen. was ich machen muss weiß ich immer noch nicht. oh man


----------



## Flown (15. Dez 2014)

Was versteht man daran nicht? Nehmen wir mal ein analoges Beispiel.
Wenn du einen Apfel und eine Birne zusammenrechnen willst, kannst du das nicht, weil sie nicht das Gleiche sind. 
Darum nimmt man einfach eine Generalisierung(oder etwas "größeres"). Äpfel und Birnen sind Kernobstgewächse.
Darum kann man sagen ein Apfel und eine Birne ergeben zwei Kernobstgewächse.

Nichts anderes ist das mit int und double. Wenn man so will ist int eine Teilmenge von double, weil es nur die ganzen Zahlen sind. 

Also wenn man int und double zusammenrechnen will dann nimmt man die Generalisierung und das ist nun mal double.

Java macht das eben automatisch mit dem Artikel den ich dir oben präsentiert habe.


----------



## ekago (15. Dez 2014)

ich hab auch geschrieben dass ich nicht weiß wie ich das mache soll. weil ich double als Datentyp bereits ersetzt habe die ausgabe jedoch genau so aussieht. als wenn int stehen würde


----------



## Flown (15. Dez 2014)

Du rechnest (x*3.2) ... und wie stg schon sagte 3.2 ist kein Integer! Das Ergebnis, aus dieser Berechnung, ist trotzdem ein double!


----------

