Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

}

…

Geschrieben

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 B): 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.

Geschrieben
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 ;)

Geschrieben

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);

}


Geschrieben

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.

Geschrieben

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!

Geschrieben

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.

Geschrieben

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

Geschrieben

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...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...