Hilfe bei Java-Aufgabe

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hilfe bei Java-Aufgabe

    Hallo Leute,

    Ich brauche dringend eure Hilfe! Ich soll als Hausaufgabe die nachfolgende Aufgabe lösen, was ich allerdings noch nicht so drauf hab. Wär echt nett wenn mir Jemand helfen könnte. Es geht meines Wissens nach um Felder (arrays) in Java. Wir arbeiten in der Schule mit dem Programm BlueJ. Wär toll wenn ihr versuchen könntet den Quelltest so einfach wie möglich zu halten und kurz erklärt was ihr eigentlich macht (bzw. für was welche Methode steht usw). Danke schon mal jetzt für eure Hilfe!

    Aufgabe:

    Sophie will ein Jahr lang jeden Tag um 15 Uhr die Temperatur auf ihrem Balkon messen und die Ergebnisse auswerten. Dazu definiert sie eine Klasse TEMPMESSUNG.
    a) Lege ein Feld Temperatur an, welches die reellen Werte für jeden Tag eines Jahres aufnehmen kann. Definiere die Methode, um das Feld mit zufälligen Temperaturwerten (-20° bis +30°) zu belegen. Hinweis: Um eine Zufallszahle zu generieren kannst du folgenden Methodenaufruf verwenden: Math.random()
    b) Nach genau einem Jahr sollen mithilfe dreier Methoden der Tag mit dem höchsten Temperaturwert, die niedrigste gemessene Temperatur und der Durchschnittswert aller Messwerte bestimmt werden. Implementiere geeignete Methoden.

    Hinweis von mir:
    Um die einzelnen Feldelemente zu benennen reichen die Zahlen 1 bis 365. Dieser Teil müsste dann ungefähr so aussehen:

    public class TEMPMESSUNG{
    public temperatur{
    double [] temperaturwerte = new double [365]
    for (double i=0; i<temperaturwerte.length, i = i+1)
    {temperaturwerte = i+1
    }
  • wenn du den fach auch bestehn willst dann sollst du auch selbst versuchen. oder nimm dir nachhilfe der alles für dich erledigt.
    hier solltest du schon deine ansätze posten und direkt fragen und nicht die aufgabenstellung reinschreiben und sagen, macht mal :whistling:
    wo genau liegt den dein problem? was genau kannst du nicht?

    wenn du ein array befühlen willst, solltest du schon so machen

    Quellcode

    1. for (int i=0; i<temperaturwerte.length,i++)
    2. {
    3. temperaturwerte[i] = i; // temperaturwerte ist ein array, also must du schon auf bestimmte positionen zugreifen
    4. }
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • ja sorry,
    war etwas verzweifelt...habs jetzt selber zigmal probiert und hab mir folgenden code ausgedacht:

    Quellcode

    1. public class TEMPMESSUNG
    2. {
    3. double[ ] temperatur = new double[365];
    4. public TEMPMESSUNG()
    5. {
    6. randomTemp();
    7. }
    8. public void randomTemp(){
    9. int f=0;
    10. for(int i = 0; i <temperatur.length; i = i+1){
    11. temperatur[f] = Math.random( ) * 30;
    12. f = f+1;
    13. }
    14. }
    15. public void hoechstTemp(){
    16. double maxTemp = 0;
    17. for(int f = 0; f < temperatur.length; f++) {
    18. if(temperatur[f] > maxTemp) {
    19. maxTemp = temperatur[f];
    20. }
    21. System.out.println("???");
    22. }
    23. }
    24. }
    Alles anzeigen


    Das einzige was mir jetzt noch fehlt ist eben meine bildschirmausgabe...was muss ich in die klammern schreiben um den höchsten wert rauszubekommen? ich hab schon ein paar sachen probiert aber hat irgendwie nich funktioniert...oder ist die methode falsch?
    bitt um hilfe. danke
  • Quellcode

    1. System.out.println("MaxTemp: " + maxTemp );


    du brauchst keine extra variable um auf die felder des array zu zugreifen, du hast ja schon die variable i
    ob das: Math.random( ) * 30; dir einen guten Tempwert liefert ich weiss nicht. da kommst du nie unter 0 grad und tempwerte wie
    22.943720256483186
    ich weiss nicht :)

    Quellcode

    1. public void randomTemp(){
    2. for(int i = 0; i <temperatur.length; i = i+1){
    3. temperatur[i] = Math.random( ) * 30;
    4. }
    5. }


    ich weiss nicht wie es bei bluej so ist aber du wirst wahrscheinlich noch ne mainmethode brauchen

    Quellcode

    1. public static void main(String[] args){}

    wo du dann dein objekt erzeugst und die eine oder andere methode aufrufst
    MfG ShureG

    There are 10 kinds of people. Those who understand binary notation, and those who do not.
  • Hallo no_file,
    hier nochmal ein paar Hinweise/Anregungen von mir:
    Du könntest die Temperatur-Spanne als Konstanten definieren, also TMIN:-20,TMAX:30
    und vielleicht sogar dem Konstruktor, zusammen mit der Anzahl der Tage, übergeben.

    Wenn Du nun das max/min bestimmen willst, solltest Du bei max den Anfangswert auf TMIN setzen
    und bein min auf TMAX. Dann durchläufst Du dein Array und prüfst...

    Problem Zufallszahlen zwischen -20/+30:
    Ich habe mir als Entscheidungshilfe ob es friert oder nicht, eine Zufallszahl erzeugt.
    Also mal angenommen es friert an 30% der Tage des Jahres: Wenn Zufallszahl kleiner 0.3: Temperatur= neue Zufallszahl*TMIN,
    ansonsten neue Zufallszahl*TMAX

    Problem Dezimalstellen:
    Um eine schönere Ausgabe der Werte am Ende zu bekommen, solltest Du Dir mal die Klasse "DecimalFormat" anschauen.
    Deren Konstruktor kannst Du einen String wie z.B. "0.00" übergeben. Dann kannst Du ihrer "format"-Methode dein double
    reichen, und bekommst einen String auf 2 Nachkommastellen gekürzt.

    mfg