Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

}

…

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.

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

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

}


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.

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!

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.

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

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 :(

Nix ist falsch dran. Finds nur uncool wenn ma in nem Forum nachfragt, Antworte bekommt, aber auf die net eingeht.

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.