no_file Geschrieben 29. April 2010 Geschrieben 29. April 2010 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() 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 } … Zitieren
flashpixx Geschrieben 29. April 2010 Geschrieben 29. April 2010 Verwende bitte Code Tags. Also: Das mit dem Array sieht doch schon mal gar nicht so schlecht aus, obwohl Du Dir vielleicht noch einmal bisschen Gedanken über den Datentyp machen solltest, meistens reicht das ganze auf ganze Grad anzugeben. Lies Dir bitte den Text in Aufgabe a) durch und überlege ob Du die richtigen Zahlen erzeugst. Du sollst _zufällige_ Zahlen für jeden Tag erzeugen. Zu Teil : Mach mal einen Vorschlag wie Du es lösen würdest. Im Grunde stellt man eben aus allen Zahlen das Minimum, Maximum und den Mittelwert fest. Zitieren
Skuzzle Geschrieben 29. April 2010 Geschrieben 29. April 2010 public class TEMPMESSUNG{ public temperatur{ [COLOR="Red"][COLOR="Red"]double[/COLOR] [] temperaturwerte = new [COLOR="Red"]double[/COLOR] [365][/COLOR] for (double i=0; i<temperaturwerte.length, i = i+1) {[COLOR="Red"]temperaturwerte[i] =[COLOR="Red"] i+1[/COLOR][/COLOR] } Das würde ich nochmal überdenken Aber ansonsten sieht es doch gut aus. Denk Dran du möchtest dem Array Ganze Zufallszahlen geben Zitieren
no_file Geschrieben 29. April 2010 Autor Geschrieben 29. April 2010 okay, danke schon mal für die hilfe! als datentyp sollte ich wohl besser integer nehmen, da ja ganze zahlen genügen. aber wie schaut eine zufallsmethode aus bei der jedem tag ein wert zugeordnet wird?? das übersteigt irgendwie meine kenntnisse... zur aufgabe b habe ich mir folgendes überlegt: wenn ich erstmal nur positive werte habe könnte ich mir theoretisch ja einfach den tag mit dem größten betragswert anzeigen lassen (und parrallel dazu den kleinsten bertragswert für die niedrigste tempertatur). nur mit welche methode? und das ergebniss dann als "system.out.println-dingens" anzeigen lassen? sorry ich bin echt der krasse anfänger :/ so weit bin ich jetzt gekommen: (aber ich denke mal es fehlen gute 70 %...) public class TEMPMESSUNG { public TEMPMESSUNG() { int [] temperaturwerte = new int [365]; for (int i=0; i<temperaturwerte.length; i=i+1) { temperaturwerte[i] = i+1; } } public void randomwerte (int) { return (int) ((Math.random()*30)+1); } Zitieren
flashpixx Geschrieben 29. April 2010 Geschrieben 29. April 2010 aber wie schaut eine zufallsmethode aus bei der jedem tag ein wert zugeordnet wird?? das übersteigt irgendwie meine kenntnisse... Das steht in Deinem Aufgabetext und Du hast es schon umgesetzt in Deiner Methode "randomwerte". Du musst dem i-ten Arrayelement einen Zufallswert zuordnen. nur mit welche methode? und das ergebniss dann als "system.out.println-dingens" anzeigen lassen? Lies bitte Deine Aufgabenstellung vollständig durch: Du sollst zu jedem Teilproblem je eine Methode schreiben, die das entsprechende Ergebnis zurück liefert, d.h. eine Methode "gibMax", "gibMin" und "gibAvg", das dann mit Hilfe des Arrays den entsprechenden Wert liefert. Zitieren
no_file Geschrieben 29. April 2010 Autor Geschrieben 29. April 2010 Okay, so langsam bekommt das ganze form. habs jetzt selber zigmal probiert und hab mir folgenden code ausgedacht: public class TEMPMESSUNG { double[ ] temperatur = new double[365]; public TEMPMESSUNG() { randomTemp(); } public void randomTemp(){ int f=0; for(int i = 0; i <temperatur.length; i = i+1){ temperatur[f] = Math.random( ) * 30; f = f+1; } } public void hoechstTemp(){ double maxTemp = 0; for(int f = 0; f < temperatur.length; f++) { if(temperatur[f] > maxTemp) { maxTemp = temperatur[f]; } System.out.println("???"); } } } 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? bitte um hilfe. dankeschön ihr habs mir echt geholfen! Zitieren
lupo49 Geschrieben 29. April 2010 Geschrieben 29. April 2010 Erstmal fehlt noch der Methodenaufruf, der dir den höchsten Wert ausgibt. In die Klammer kommt die Variable, in der die höchste Temperatur gespeichert wird. Wenn du die Logik verstanden hast, sollte das kein Problem sein. Die Ausgabe auf der Konsole würde ich außerhalb der Schleife ansetzen. Zitieren
flashpixx Geschrieben 30. April 2010 Geschrieben 30. April 2010 Schau Dir einmal bitte dein "hoechsteTemperatur" am, denn im Moment gibt die Methode "nichts / void" zurück, d.h. das kann so nicht funktionieren. Du musst die Methode so deklarieren, dass sie einen Datentyp liefert und dann musst innerhalb der Methode dafür sorgen dass sie den Wert auch "returned" Aber sonst bist Du auf dem richtigen Weg. Wenn Du obiges umsetzt, dann sind die anderen beiden kein Problem mehr Zitieren
Momo21 Geschrieben 30. April 2010 Geschrieben 30. April 2010 LOL.. hier wohl nicht fündig geworden? wer-weiss-was - Experten-Forum ..Und ich hab mir auch noch die Mühe gemacht und dir schöne Tipps geschrieben Zitieren
Ulfmann Geschrieben 30. April 2010 Geschrieben 30. April 2010 LOL.. hier wohl nicht fündig geworden? Was ist falsch daran, in mehreren Foren zu fragen? Zitieren
Momo21 Geschrieben 30. April 2010 Geschrieben 30. April 2010 Nix ist falsch dran. Finds nur uncool wenn ma in nem Forum nachfragt, Antworte bekommt, aber auf die net eingeht. Zitieren
lupo49 Geschrieben 30. April 2010 Geschrieben 30. April 2010 Weil durch Multiposting ungewollte Redundanz entsteht. Zitieren
no_file Geschrieben 30. April 2010 Autor Geschrieben 30. April 2010 okay ich hab jetzt eure tipps beachtet und noch weng was geämdert und jetzt funktionierts... herzlichen dank an alle nochmal für die tipps... wegen dem multiposting...werd ich in zukunft unterlassen^^ muss die aufgabe nur bis montag fertig haben und ich hab gedacht so gehts schneller... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.