Erste Schritte Protokollauswerter

Status
Nicht offen für weitere Antworten.

Devanther

Top Contributor
Ja, ein s zuviel^^. Sonst richtig?

Code:
 int minimaleAnzahlAnZugriffenProStunde = Integer.MAX_VALUE;

Was bedeutet diese Zeile?

Kein Wunder, dass ich nicht alleine auf die Lösung gekommen bin...
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Stelle dir vor, der Anfangswert von minimaleAnzahlAnZugriffenProStunde ist 1000. Was ist der Rückgabewert, wenn du in jeder Stunde mehr als tausend Zugriffe hast?
 

Devanther

Top Contributor
Code:
 Integer.MAX_VALUE

Das hab ich noch nie gesehen. Was heisst das?
Maximalwert einfach nur....?

Also wird in der if Anweisung geprüft auf <kleiner als der Maximalwert von minimaleAnzahlAnZugriffenProStunde
und halt >0. Dann ist mir das klar. Schwer auf so ne Lösung zu kommen...!
 

Devanther

Top Contributor
Ganz ehrlich, wie sollte ich auf so eine Lösung kommen....im BlueJ steht kein Wort davon.
Hätte man auch eine Lösung ohne
Code:
Integer.MAX_VALUE;
schreiben können`?
 

Harry Kane

Top Contributor
1000+ das was man in jeder Stunde hat?
Nein. Wenn der Anfangswert von minimaleAnzahlAnZugriffenProStunde 1000 ist, aber alle Einträge in zugriffeInStunde größer sind als 1000, führt folgender Block
Code:
Falls der i-te Eintrag kleiner ist als minimaleAnzahlAnZugriffenProStunde und größer ist als der int-Wert null (0),
Weise minimaleAnzahlAnZugriffenProStunde den Wert vom i-ten Eintrag zu
Weise stundeMitDerMinimalenAnzahlAnZugriffen den Wert von i zu
Ende der Überprüfung des i-ten Eintrags
dazu, dass die Bedingung hinter dem "falls" nie erfüllt ist, und stundeMitDerMinimalenAnzahlAnZugriffen nie einen neuen Wert bekommt, sondern seinen Ursprungswert von -1 behält. Dieser Wert wird dann zurückgegeben. Das soll aber eigentlich bedeuten, dass zugriffeInStunde keine Werte enthält, was aber nicht stimmt.
So, jetzt hast du was zum drüber nachdenken.
 

JStein52

Top Contributor
Du hättest zunächst einmal eine dir sehr gross erscheinende Zahl dort hinschreiben können. Obwohl das nicht wirklich korrekt gewesen wäre. Aber das war ja nicht wirklich das Problem
 

Harry Kane

Top Contributor
im BlueJ steht kein Wort davon
Dann ist BlueJ kein gutes Lernwerkzeug.... Moment, zu dieser Erkenntnis sind wir doch schon vor Monaten gekommen.
Hätte man auch eine Lösung ohne Integer.MAX_VALUE schreiben können?
Ja, aber die wäre nicht allgemeingültig. Die Methode liefert dann fälschlicherweise -1 als Rückgabewert, wenn alle Einträge in zugriffeInStunde entweder 0 sind oder größer sind als der Anfangswert von minimaleAnzahlAnZugriffenProStunde. Um das sicher zu verhindern, muss man minimaleAnzahlAnZugriffenProStunde mit dem größtmöglichen int Wert initialisieren.
 

Harry Kane

Top Contributor
Edit: Manche mögens heiss ...
Um es mal mit der Sprache deines Avatars zu sagen: Was dieser Satz bedeuten soll, ich mich frage.

[edit] Ich glaube, ein Hörspiel ist nicht die geeignete Methode, um diesen Thread nachzuerzählen. Ich sehe gerade eine Bühne vor meinem geistigen Auge, mit ein paar Stühlen und Bildschirmarbeitsplätzen. Darauf/daran sitzen ein paar Leute. Sie sprechen die Sätze aus dem Thread nach, und auf einer Leinwand im Hintergrund erscheint der diskutierte Code. Das wird ein Knaller!
 
Zuletzt bearbeitet:
X

Xyz1

Gast
Ganz ehrlich, wie sollte ich auf so eine Lösung kommen....im BlueJ steht kein Wort davon
BlueJ ist doch nur eine Entwicklungsumgebung. In IDEs "steht auch nichts davon".

Wieso ist dieses Thema denn immernoch geöffnet? Leichte Lernresistenz - und die "Antwortenden" hören nicht auf zu schreiben ... Beide Seiten machen etwas falsch.

Sorry wenn ich dieses Thema jetzt etwas torpediere. ;)
 

Devanther

Top Contributor
Dann ist BlueJ kein gutes Lernwerkzeug.... Moment, zu dieser Erkenntnis sind wir doch schon vor Monaten gekommen.

Ich glaube ich habe vor etwa 7 Wochen mit BlueJ angefangen, ganz so lang ist es noch nicht her^^
Eigentlich ist das Buch inhaltlich gut und hat auch gute Aufgaben.
Die sind nur viel zu schwer und aus dem Buch leider nicht abzuleiten.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich glaube ich habe vor etwa 7 Wochen mit BlueJ angefangen, ganz so lang ist es noch nicht her^^
Eigentlich ist das Buch inhaltlich gut und hat auch gute Aufgaben.
Die sind nur viel zu schwer und aus dem Buch leider nicht abzuleiten.
Eigentlich ist das Buch gut, aber es ist doch nicht gut?

Die Aufgaben sind ziemlich leicht, noch viel einfacher kann man die wirklich nicht gestalten. Das Problem ist eher, dass du eine Aufgabe nicht verstehst, und trotzdem mit der nächsten fortfährst - dann ist doch klar, dass du damit nicht klar kommst...
 

Devanther

Top Contributor
Naja, also wenn ich so zurückdenke, wusste ich anfangs nicht wie man Instanzen in BlueJ erstellt
oder das Strings immer in " " geschrieben werden müssen etc. Und jetzt....wenigstens ein klein wenig Ahnung!
 

Devanther

Top Contributor
Nächste Aufgabe:

Fügen Sie Protokollauswerter eine Methode hinzu, die den aktivsten zweistündigen
Abschnitt findet. Lassen Sie die Methode den Wert der ersten Stunde dieses Abschnitts liefern.


Meine Gedanken:
1. Die aktivste Stunde hab ich schon
2. Wie bekomm ich die zweithöchste raus?
3. Die aktivste Stunde soll zurückgegeben werden.

Code:
public int aktivsteStunde() {
   
    int maximaleAnzahlAnZugriffenProStunde = 0;
   
    int stundeMitDerMaximalenAnzahlAnZugriffen = -1;     
       
    for (int i = 0; i < zugriffeInStunde.length; i++){
        if(zugriffeInStunde[i] > maximaleAnzahlAnZugriffenProStunde){
             maximaleAnzahlAnZugriffenProStunde = zugriffeInStunde[i];
             stundeMitDerMaximalenAnzahlAnZugriffen = i;
            }
           
    }    return stundeMitDerMaximalenAnzahlAnZugriffen;
    }

Ich muss diesen Code verändern. Irgendwie muss ich den 2t höchsten Wert herausbekommen.
Ich muss auf <aktivsteStunde prüfen, in der if Anweisung?
Um auf den 2t höchsten Wert zu kommen`?
 

Devanther

Top Contributor
Code:
public int zweitAktivsteStunde() {
 
    int maximaleAnzahlAnZugriffenProStunde = 0;
 
    int stundeMitDerMaximalenAnzahlAnZugriffen = -1;    
     
    for (int i = 0; i < zugriffeInStunde.length; i++){
        if(zugriffeInStunde[i] > maximaleAnzahlAnZugriffenProStunde)
        if(zugriffeStunde[i] <stundeMitDerMaximalenAnzahlAnZugriffen)
       {
maximaleAnzahlAnZugriffenProStunde = zugriffeInStunde[i];
             stundeMitDerMaximalenAnzahlAnZugriffen = i;
            }
         
    }    return stundeMitDerMaximalenAnzahlAnZugriffen;
    }
 

Devanther

Top Contributor
Ok, das ist Quatsch!
Ich habe keine Ahnung, wie man diese Aufgabe lösen könnte!
Es müssen die 2 größten benachbarten Stunden gefunden werden, wo die Zugriffe am höchsten sind!?

Wenn ja, wie soll ich den Code schreiben?
1. Schritt ?
 

Flown

Administrator
Mitarbeiter
@Devanther Wir sind hier - wie du auch siehst - ein sehr, sehr hilfsbereites Forum. ABER: Das hier ist kein privates Tutorium.
Wenn du ein konkretes Problem hast, dann bitte Stelle es hier, mit deinen Versuchen. Aber Schritt für Schritt die Lösung erhaschen und dich durch dein Buch zu wurschteln, ist nicht Ziel der Sache.

Ich werde jetzt das Thema hier schließen, da 1. nur eine Frage/Thema und 2. - was dir schon zig-mal gesagt wurde: "Setz dich hin und lern die Grundlagen!"
Bei Verständnisschwierigkeiten kannst du gerne wieder hier Fragen, aber die Aufgaben sind eine Nummer zu groß für dich.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben