Kann mir jemand in Informatik helfen (Java)?
Schreiben Sie eine Methode, die den Preis einer Kinokarte berechnet
public double preis(int freigabe, int alter, int vollpreis, int reihe)
- Parameter freigabe: Altersfreigabe in Jahren für den jeweiligen Film (zum Beispiel 12)
- Parameter alter: Das Alter des Besuchers in Jahren (zum Beispiel 17)
- Parameter vollpreis: Der normale Preis einer Eintrittskarte ohne Ermäßigung oder Zuschlag (zum Beispiel 6,30 €)
- Parameter reihe: Die Reihe, in der der Besucher sitzen möchte (zum Beispiel 12)
Rückgabewert: Der Eintrittspreis, falls der Besucher alt genug für den Film ist, ansonsten Meldung "Sie sind leider nicht alt genug für den Film".
Der Preis einer Eintrittskarte hängt vom Alter des Besuchers ab:
- Unter 6 Jahre = halber Vollpreis;
- 6 - 12 Jahre = ¾ Vollpreis,
- 13 - 16 Jahre = 10% Ermäßigung,
- über 16 Jahre = Vollpreis.
Der Preis der Eintrittskarte hängt außerdem von der Reihe ab, in der der Besucher sitzen möchte.
- Reihen 1 bis 4 (vorne) = 30% Ermäßigung,
- Reihen 5 bis 8 (mitte) = keine Ermäßigung
- Reihen 9 bis 11 (hinten) = 30% Zuschlag,
- Reihe 12 (ganz hinten) = 50% Zuschlag.
4 Antworten
Also das erste Problem wird sein in den Parametern deiner Funktion, dass du sagst "int vollpreis" aber einen Wert wie 6,3 möchtest, also einen Double/Decimal.
In deiner Funktion arbeitest du dann z.B. mit if-Abfragen
Also als Beispiel:
if (alter < 6) { //Code here }
Innerhalb dieser Altersschleifen könntest du weiter if-Schleifen für die Reihe ergänzen.
Als Beispiel für das Verhalten eines unter 6 Järigen in der Vordersten Reihe:
if (alter < 6) {
//halber Vollpreis von Alter
output = vollpreis/2
if(reihe >=1 && reihe <=4){
//30% ermäßigung
output = output * 0,7
}
}
Das alles nur beispielhaft. Natürlich musst du vorher auch noch die Altersfreigabe prüfen.
Am Ende gibst du dann einfach deinen output zurück.
Das mal als Anhaltspunkt. Ich hoffe ich konnte dir grob vermitteln wie du vorgehen kannst.
Viel Erfolg :)
du setzt am anfang deine variable preis
nicht vergessen das du in cent rechnest und am ende erst in euro umrechnest.
dann mit if else gehst du die einzelnen fälle druch und berechnest entsprechend den preis
und das jeweils für vollpreis und reihe
am ende prüfst du ob das alter stimmt, wenn ja gibst du den preis zurück , wenn nein dann halt 0
auf der anderen seite prüfst du den preis , wenn 0 stimmt was mit dem alter nicht , ansonsten einfach den preis ausgaben .
Womit hast Du denn Probleme? Sicherlich werde ich Dir nicht hier die Lösung hinschreiben, ohne gesehen zu haben, dass Du selbst etwas versucht hast.
Ich habe oft Schwierigkeiten die richtigen Befehle zu schreiben oder wie man das angibt. Unser Lehrer schmeißt uns da oft ins kalte Wasser
Nun, die Deklaration der Methode steht ja schon da. Es gilt also, erst einmal die Konditionen zu prüfen.
Wann darf die Person rein? Wenn sie alt genug ist. Wann ist sie alt genug? Wenn ihr aktuelles Alter >= dem Mindestalter ist. Wie prüft man, ob etwas gilt oder nicht? Mit "if".
Also beispielsweise
if (alter >= freigabe) ...
Danach prüfst Du eben die Altersermäßigungen. Wenn Du so den Basispreis ermittelt hat, dann geht's mit den Sitzreihen weiter.
Es ist doch sehr detailiert beschrieben, was umzusetzen ist. Sogar stark vereinfacht. Es muss nichtmal mit Geburtsdaten oder Fließkommazahlen gerechnet werden.
Unser Lehrer schmeißt uns da oft ins kalte Wasser
Herzlich willkommen in der wundervollen Welt der Programmierung.
StackOverflow ist dein Freund.
Kenn ich das Gefühl,
Kann dir aber leider nicht helfen da ich erst dieses Wochenende angefangen habe zu programmieren.
haben Informatik erst das erste Jahr und ich war aufgrund einer Verletzung oft nicht da, deswegen habe ich die Grundlagen etwas verpasst , dadurch musste ich viel nachholen und das fällt mir einfach schwerer
die werden sich über so eine Frage freuen. Da folgt wahrscheinlich direkt der Bann.
Ja gut, der StackOverflow Hinweis war wohl etwas zynisch für diesen Fall.
Nein, das macht keinen Sinn, ausser du willst die Person ärgern.
Nein. Ich will einfach eine konkrete Problemstellung hören. "Gib mal Code" ist Quatsch, daraus lernt niemand was. Und von daher ergibt das sehr wohl Sinn, denn ich sage ja nicht "ich verrate es Dir nicht". Ich frage nur, wo die konkreten Probleme liegen.
Gib ihr einfach den Code. Es geht nicht immer nur ums lernen und lernen. Du musst nicht helfen, aber wenn, dann richtig.
Doch, genau darum geht's. Und jetzt lass mich zufrieden. Du kannst gerne eine eigene Antwort schreiben, wenn Du möchtest.
Nein, mache ich nicht, weil ich keine Ahnung von dem Thema habe.
Und nein, es geht nicht darum. Manchmal muss man einfach die Lösung geben ohne dass jemand etwas lernt. Ich glaube du kannst es einfach selber nicht, aber gut.
Was Du glaubst geht mir ehrlich gesagt ziemlich weit am unteren Ende vorbei. Und wenn Du schon vom Thema keine Ahnung hast, bist eventuell doch eher Du derjenige, der sich raushalten sollte, wenn die Leute reden, die sich auskennen (und ich mache das immerhin auch schon über 30 Jahre).
Ich weiss, deshalb sage ich auch nichts thematisches. Ich finde deine Einstellung einfach nur im Prinzip nicht gut.
Die Aufgabenstellung ist falsch.
Der Beispielwert von 6,3€ kann nicht als vollpreis übergeben werden, da es sich bei "vollpreis" um einen Integer handelt.
Das ist schlicht falsch, es muß nur geeignet gerechnet werden (d.h. z.B. mit 100 multipliziert oder mit cent gerechnet).
Es soll der Preis in € ausgegeben werden, das ist aber auch unproblematisch, denn die Methode ist ja als Double definiert. Es steht NICHT da, dass die Methode den "Nromalen Preis in Euro" erwarten soll, sondern "den normalen Preis". Die Beispielangabe 6,3€ wäre dann geeignet umzurechnen.
Achso, weißt du wie ich die aufgabe trotzdem lösen kann ?
Wenn die exakt so vorgegeben ist, ist die nicht korrekt lösbar. Entweder fallen Nachkommastellen weg oder man ändert den Datentyp von Vollpreis.
Kannst Du auch so - Du kannst halt nur glatte Euro-Beträge im Parameter angeben. Oder Du interpretierst die Angabe in cent, nicht in Euro, aber dann ergibt Double als Rückgabe keinen Sinn.
Ich habe oft Schwierigkeiten die richtigen Befehle zu schreiben oder wie man das angibt. Unser Lehrer schmeißt uns da oft ins kalte Wasser