Studium aufgabe ...Anfänger sucht hilfe :D

Fasadli

Mitglied
Hey Leute kann mir jemand beim ansatz helfen ich hab mir gedacht evtl ne for schleife zu verwenden ? ich kenn mich noch nicht so gut aus.
danke im vorraus
 

Anhänge

  • asdasdasdasdasdasdasd.PNG
    asdasdasdasdasdasdasd.PNG
    62,2 KB · Aufrufe: 74
  • asdasdasdasdasdsadasdasdasdasd.PNG
    asdasdasdasdasdsadasdasdasdasd.PNG
    19,7 KB · Aufrufe: 58
For-Schleife hört sich gut an.

Für einen Tarif ohne Freiminuten wäre i in der for-Schleife dann die Minutenanzahl:
Java:
        for (int i = 10; i <= 100; i += 10) {
            System.out.println(grundgebuehr+minuten*minutenGebuehr);
        }

Mit den Freiminuten musste das dann noch leicht anpassen.

Wenn mich nicht alles täuscht, sollte beim Tarif 3 und 100 Minuten auch 44.25 rauskommen. Da hat der Prof vllt. etwas geschlampt.
 
Zuletzt bearbeitet:
erstmal danke für die schnelle Antwort nur ne Frage was mus ich bei den minuten angeben wenn ich sie deklarieren möchte ?
ich meine

bei Grundgebühr mach ich ja

double grundgebuehr = 12.00 € oder ?

und wie mach ich das ? weil ich hab ja 3 verschieden Gebühren
 
Theoretisch wäre es am "schönsten" eine eigene Tarif-Klasse mit den Membern Grundgebühr, Preis pro Minute und Freiminuten anzulegen.
Da ihr das sicherlich noch nicht hattet, könntest du einfach 3 Variablen für die Grundgebühr anlegen. Für jeden Tarif eine.
 
erstmal danke für die schnelle Antwort nur ne Frage was mus ich bei den minuten angeben wenn ich sie deklarieren möchte ?
ich meine

bei Grundgebühr mach ich ja

double grundgebuehr = 12.00 € oder ?

und wie mach ich das ? weil ich hab ja 3 verschieden Gebühren

Die Minuten sind schon deklariert. Wenn du es deutlicher machen willst, kannst es auch so schreiben:
Java:
for (int minuten = 10; minuten <= 100; minuten += 10) {

}

Für 3 verschiedene Gebühren deklarierst du dann einfach 3 Variablen in der Schleife.
 
Java:
double grundgebuehr = 12.00;
        double minutenGebuehr =0.5;
        
        for (int i = 10; i <= 100; i += 10) {
                System.out.println(grundgebuehr+minuten*minutenGebuehr);
            }
bei mir wird bei system. out. printl bei minuten ein fehler angezeigt
habe ich grundgebühr richitig deklariert ? soll ich das dann 3 mla mit verschiedenen Zahlen machen ?
 
Guck dir mal die 2. for-Schleife von mir an, dann sollte dir klar werden woher die "minuten" kommen.
In der ersten for-Schleife war das nur beispielhaft.

Und ja, du kannst das zum Beispiel mit 3 verschiedenen Wertepaaren machen.
Du solltest aber auch ein bisschen mehr Eigeneinsatz zeigen, immerhin studierst du ;D
 
danke langsam versteh ich das ich mach die aufgabe mal fertig und danke dir für dich Hilfe 🙂 ich poste das Ergebnis danach hier rein
lg
 
Haste mal geschaut ob eine Parabel durch die Gebühren der drei Tarife gelegt werden kann und somit eine stetig differenzierbare Funktion durch alle Punkte existiert?
Dann haste nur noch zwei Schleifen und eine Funktion. 🙂
 
Was schreibe ich denn da eigentlich???? Ich meine quadratische Regressionsanalyse und das ist möglich!!!!
https://www.wolframalpha.com/input/?i=quadratic+fit+12,+18.25,+21.75
https://www.wolframalpha.com/input/?i=quadratic+fit+0.5,+0.25,+0.375

Java:
for (int i = 10; i <= 100; i = i + 10) {
    for (int j = 1; j <= 3; j++) {
        System.out.print((-1.375 * (j * j) + 10.375 * j + 3) + i * (0.1875 * (j * j) - 0.8125 * j + 1.125));
        System.out.print("\t");
    }
    System.out.println();
}

Code:
17.0    20.75    25.5  
22.0    23.25    29.25  
27.0    25.75    33.0  
32.0    28.25    36.75  
37.0    30.75    40.5  
42.0    33.25    44.25  
47.0    35.75    48.0  
52.0    38.25    51.75  
57.0    40.75    55.5  
62.0    43.25    59.25

70 Minuten im Tarif 2 = 0,25 * 70 + 18,25 = 35.75 GREENCHECKMARK!!!!
....
 
@Robat Schaue mal, da steht eine "bescheuerte" Tabelle mit 3*3=9 Werten, die braucht er damit schonmal nicht abtippen. Ergo ists um einiges leichter.😉
....
Mal ne Anekdote: Ich verstehe manchmal nicht wieso das Internet und internetfähige Geräte in Klassenarbeiten in den Schulen nicht erlaubt ist...
 
Sooooo, Morgen, der Wurstfall ist eingetreten....
habe nämlich die Freiminuten vergessen im Tarif 3. 🙁 Die Freiminuten sind NICHT stetig differenzierbar (@mihe7 richtig? ) und das bedeutet man kommt ohne ein a ? b : c nicht aus!
Der TE muss also wenns um Tarif 3 handelt 40 Minuten abziehen und auf eine nicht negative Zahl aufrunden.... 😱 Dadurch hätte man eine Fallunterscheidung und keinen Dreizeiler mehr
 
Die Freiminuten sind NICHT stetig differenzierbar (@mihe7 richtig? )
Die Freiminutenfunktion ist nicht stetig und damit nicht überall differenzierbar. Das gilt aber für die beiden anderen Funktionen auch.

Letztlich spielt es keine Rolle, weil es ein Polynom gibt, das durch die jeweils drei Punkte verläuft, in diesem Fall halt https://www.wolframalpha.com/input/?i=quadratic+fit+0,0,+40

Du musst also nur i - (20*j*j - 60*j + 40) rechnen.
 
Nochmal komplett:
Java:
for (int i = 10; i <= 100; i = i + 10) {
    for (int j = 1; j <= 3; j++) {
        System.out.print((-1.375 * (j * j) + 10.375 * j + 3) + (i - (20 * (j * j) - 60 * j + 40)) * (0.1875 * (j * j) - 0.8125 * j + 1.125) + "\t");
    }
    System.out.println();
}

Code:
17.0    20.75    10.5   
22.0    23.25    14.25   
27.0    25.75    18.0   
32.0    28.25    21.75   
37.0    30.75    25.5   
42.0    33.25    29.25   
47.0    35.75    33.0   
52.0    38.25    36.75   
57.0    40.75    40.5   
62.0    43.25    44.25

Für 70 Minuten ist nämlich jetzt Tarif 3 der beste!
 
Den Clean Code Preis gewinnt er damit aber sicher nicht. Die Idee, das so zu machen, ist dermaßen absurd, dass sie mir fast schon wieder gefällt 😀
 

Neue Themen


Zurück
Oben