Preisliste durch Arrays erzeugen

ekago

Mitglied
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

Mitglied
Java:
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

Mitglied
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


Java:
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)+ "€" );
		
	}

Java:
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€
 
Zuletzt bearbeitet:

ekago

Mitglied
sorry ich meinte das so

Java:
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)+ "€" );
		
	}
Java:
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€
 

Flown

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

Beispiel:
Java:
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.
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
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.
 
Zuletzt bearbeitet:

ekago

Mitglied
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

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

Oben