Hi ich hätte da mal ein Problem mit einem Program das ich Programmieren soll kann mir da jemand helfen?
Hier die Aufgabenstellung:
Ihr wurdet vom Meteorologischen Institut des Vogelsbergkreises beauftragt die Wetterdaten aus zu werten. Es sollen für eine Woche die Temperaturen jeweils um 8 Uhr morgens 12 Uhr mittags und 20 Uhr abends erfasst werden. Am ende der Woche möchte das Institut die Durchschnittstemperaturen für morgens, mittags, abends, den größten Wert für morgens, mittags, abends und den kleinsten morgens, mittags und abends.
Mein Problem liegt darin wie ich den größten und kleinsten Wert ausgeben kann.
Grundsätzlich wären viele Mitglieder dieses Forums in der Lage dir diese Aufgaben abzunehmen, nur wollen die meisten nicht. :twisted:
Denn eigentlich bist DU derjenige der was lernen sollte... :wink:
Na, ich will nicht allzu gemein sein: Wenn Du was in die Konsole ausgeben willst, benütze System:
Code:
System.out.println( "bla bla" );
Und um ein paar Werte zu vergleichen ist ein Array ganz nützlich:
Code:
double[] values = ...
double max = -300; // tiefer als 0 Kelvin, wird wohl kaum auftreten :-)
for( int i = 0; i < values.length; i++){
max = Math.max( max, values[i] );
}
Wenn das nichts hilft: Bitte Frage genauer stellen.
liegt das Problem darin, die Werte auszugeben oder zu berechnen.
Berechnen ist nicht schwierig - du hast drei Variablen maxMorgen, maxMittag, maxAbend. Wenn du eine neue Messung hast überprüfst du ob der Messwert größer ist als der aktuelle maximale Wert. Wenn ja wird der neue maximal Wert gesetzt, ansonsten passiert nichts....
1. hier werden KEINERLEI hausaufgaben für andere erledigt.
wenn du eine frage zu einem deiner probleme hast, die während deiner hausaufgaben auftreten hast und bereits einen ansatz hast und wissen willst, was zb an deinem gedankengang richtig ist bzw was du an der umsetzung falsch gemacht hast.
bis du das gemacht hast, erst selbst überlegen oder STFW und RTFM da findest du was du suchst
Ich habe die Aufgabe schon fast vertig mir fehlt nur der Teil das er mir die höchste und tiefste Temperatur von der ganzen Woche ausgibt und dort hänge ich.
Das Programm soll so funtionieren:
Erst werden die Temperaturen von Morgens, Mittags Abend über die ganze Woche eingegeben(Montag: morgens=2C°, mittags=10C° uns.)
Dann soll es die Durchschnittstemperatur der ganzen Woche für den morgen, mittag und abend berechenen:
Und zum schluß soll es den höchsten Wert(Temperatur) und tiefsten ausgeben und das habe ich nicht (weil wir es noch nicht gemacht haben)
du hast doch alle werte in irgendeiner weise geparst (sonst könntest du ja nicht den mittelwert berechnen).
Und im Schritt des parsen würde ich mir einfach das Maximum merken.
Code:
int maxMorgen = Integer.MIN_VALUE;
int maxMittag = Integer.MIN_VALUE;
int maxAbend = Integer.MIN_VALUE;
// jetzt werden die messungen geparst
// immer wenn du einen neue Messung hast vergleichst du sie mit dem aktuellen Maximum
int maxMorgen = Math.max(maxMorgen, aktuelleMorgenMessung);
int maxMittag = Math.max(maxMittag, aktuelleMittagMessung);
int maxAbend = Math.max(maxAbend, aktuelleAbendMessung);
Ist das richtig so um den höchsten Morgenwert auszu geben, weil mir gibt er nur 1 aus.
Code:
import util.*;
public class wetter
{
public static void main(String[] args)
{
//Variablen
double[] tempmorgens = new double[7];
double[] tempmittags = new double[7];
double[] tempabends = new double[7];
double morgens=0;
double mittags=0;
double abends=0;
int tag=0;
double max=0;
//Schleife
for(int zaehler=0; zaehler<7; zaehler=zaehler+1)
{
tag=tag+1;
tempmorgens[zaehler]=StdInput.readDouble("\nWie hoch war die Temperatur um 08.00 Uhr am "+tag+" Tag:");
tempmittags[zaehler]=StdInput.readDouble("\nWie hoch war die Temperatur um 12.00 Uhr am "+tag+" Tag:");
tempabends[zaehler]=StdInput.readDouble("\nWie hoch war die Temperatur um 20.00 Uhr am "+tag+" Tag:");
//Gesamttemperaturen
morgens= morgens + tempmorgens[zaehler];
mittags= mittags + tempmittags[zaehler];
abends = abends + tempabends[zaehler];
max=Math.max(tempmorgens[zaehler], tempmorgens[zaehler]);
}
//Durchschnitt
morgens = morgens /7;
mittags = mittags /7;
abends = abends /7;
System.out.println(morgens);
System.out.println(mittags);
System.out.println(abends);
System.out.println(max);
}
}
du könntest das ganze auch selber schreiben:
min <- 1. wert
dann vergleichen mit allen werten und ggf zuweisung anpassen
max <-1.wert
dann vergleichen mit allen werten und ggf zuweisung anpassen