Tarifrechner Aufgabe

furkan24

Neues Mitglied
Ich habe eine Aufgabe bekommen und diese soll ich lösen:
Ein Mobilfunkanbieter bietet 3 Tarife:
Tarif eins. 7.99 Euro Grundgebühr , pro minunte 37 cent.
Tarif 2 19.95 Euro grundgebühr. (30 min frei) pro min 25 cent
Tarif3 24.95 Euro (50 min frei) pro min 19 cent.
Implemntieren sie die metholden public static double tarif1(int min) , public static double tarif2(int min) , public static double tarif3(int min), die für jeden Tarif die Monatsrechnung erstellt. Der Parameter min gibt jeweils die Dauer der tatsächliche geführten Telefonate an.
Danach steht ganz unten in Eclipse:

System.out
.println("Tarif 1 kostet im Monat für 100 Gesprächsminuten: (44.99) "
+ tarif1(100));
System.out
.println("Tarif 2 kostet im Monat für 130 Gesprächsminuten: (44.95) "
+ tarif2(130));
System.out
.println("Tarif 3 kostet im Monat für 150 Gesprächsminuten: (43.95) "
+ tarif3(150));
Hab mit if verknüpfung versucht aber kommt eine fehlermeldung boolean cannot convert double.
 
Mist, ausgerechnet an Halloween geht meine Hellseherkugel kaputt und mein Hexenkostüm ist auch Flöten gegangen.
Kannst du mir unter diesen Umständen zeigen, wie deine If-Anweisung aussieht?
 
Eine Return Anweisung muss immer am Ende einer Methode sein (zumindest aus logischer Sicht).

Ein Return liefert einen Rückgabewert. Falls also dein erstes If zutrifft bzw true ist, willst du einen Wert zurückgeben! Wenn else if true ist, willst du einen anderen Wert zurückgeben.

Also entweder zwei Returns einbauen oder je nach Abzweigung einer lokalen Variable den dementsprechenden Wert zuweisen und diese Variable zurückgeben.

Edit: ausserdem versuchst du einen Bezeichner für primitive Datentypen zurückzugeben. Das macht kein Sinn, weil double ein Typ ist für eine Variable und daher keine Werte annehmen kann.
Schau dir mal tutorials zu "if else" und zu "java return value" an, dann sollte der Kroschen fallen.
 
Code:
public static double tarif2(int min) {

   if (min <= 30 ) {
      return 19.95;   // nur die Grundgebuehr
   }
   else {
      return (0.25*(min-30)+19.95);
   }
}
So etwa:
 
Lösung nach JStein:
Java:
    public static double tarif1(int min) {
        return 7.99 + (min * 0.37);
    }

    public static double tarif2(int min) {
        if (min <= 30) {
            return 19.95;   // nur die Grundgebuehr
        } else {
            return (0.25 * (min - 30) + 19.95);
        }
    }

    public static double tarif3(int min) {
        if (min <= 50) {
            return 24.95;   // nur die Grundgebuehr
        } else {
            return (0.19 * (min - 50) + 24.95);
        }
    }

Und hier ist die Killergrafik dazu:

zzz.png

Folgendes Szenario ist denkbar:
Kunde telefoniert 20 Min. im Monat:
Der Verkäufer empfiehlt Tarif 3,
der dumme nimmt Tarif 2,
für den Kunden wäre Tarif 1 am günstigsten/billigsten.

Ich sollte Tarif-Verkäufer werden. 😀 🙂
 
Nochmal in "Schön",
teestii.png
und Schlussfolgerungen dazu:
aus Sicht des Kunden empfiehlt sich:
Tarif 1 von 0 bis 36 Gesprächsminuten,
Tarif 2 von 36 bis 50 Gesprächsminuten,
Tarif 3 ab 50 Gesprächsminuten...

(Kann auch sein, dass ich mich das verlesen hab). Ob das immer so vermittelt wird (Transparenz), ist eine andere Frage.

Aber ich weiß, dass Vodafone oder irgendein anderer Anbieter oder alle Anbieter oder kein einziger Anbieter 😀 Software dafür hat, die einen optimalen Tarif bestimmt, aus welcher Sicher bloß?

Jemand lust etwas zu philosophieren über preise?
 
Also ich habe keine Flat - aber ich habe auch nicht so hohe Minutenpreise wie in dem Beispiel. Aber stimmt, vielleicht ist das Beispiel veraltet/obsolet. Außerdem tele ich gar nicht - was ist das bloß? 😀 Ich würd aber sagen, Tarif 2 ist der abzockertarif. Bist drunter -> teuer, Bist drüber -> teuer.

@furkan24 : Hast du noch welche Fragen? Oder hat sich jetzt alles geklärt? Begrifflichkeiten vielleicht 😀 ?
 
Woher willst du das wissen ? Aber wahrscheinlich hat er die Lösung inzwischen in einem anderen Forum gefunden wo man ein bisschen kooperativer ist. Er hat auf jeden Fall nicht mehr nachgefragt.

Davon ging ich mal aus wegen dem
Code:
return (doube)
//weiterer Code

Ich glaube nicht, dass wir hier nicht kooperativ sind. Aber ich bin auch der Meinung, dass man nicht programmieren lernt, indem man C&P aus dem Internet übernimmt, gerade wenn man noch am Anfang steht.
 
Aber ich bin auch der Meinung, dass man nicht programmieren lernt, indem man C&P aus dem Internet übernimmt
Aber wieso sollten wir uns anmassen darüber zu entscheiden wie jemand am besten lernt. Trau ihm doch einfach mal zu dass er schon weiss was er mit dem anfängt was er von uns gesagt und gezeigt kriegt. In jedem Java-Buch gibt es eine Begleit-CD von der man mit C&P alles kopieren kann. Wir sind ja hier nicht in einem Pädagogik-Seminar sondern in einem Java-Forum.
 

Neue Themen


Zurück
Oben