Hallo Java-Forum,
ich habe folgende Aufgabe bearbeitet:
Aufgabe
Eine Wetterstation hat für 14 Tage folgende Temperaturwerte aufgenommen.
Tag: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Temperatur: 12 14 9 12 15 16 15 15 11 8 13 13 15 12
Diese habe ich wie folgt gelöst:
public class Wetterstation {
public static void main(String[] args) {
int average, max, min, differenceOne, differenceTwo, differenceTotal, difference;
float averageTotal;
average = 0;
averageTotal = 0;
differenceOne = 0;
differenceTwo = 0;
differenceTotal = 0;
difference = 0;
int [] temp = { 12, 14, 7, 12, 15, 16, 15, 15, 11, 8, 13, 13, 15, 12}; //Wettertabelle
max = temp[0]; //Maximale Gradzahl
min = temp[0]; //Minimale Gradzahl
for(int i = 0; i<14; i++){
average += temp;
averageTotal = average/14;
} //Berechnung von der Durchschnittstemperatur
System.out.println("Die Durchschnittstemperatur beträgt: " + averageTotal + " Grad");
for(int i = 0; i<14; i++) {
if(max<temp) {
max = temp;
}
if(min>temp) {
min = temp;
}
} //Berechnung von Maximal- und Minimaltemperatur
System.out.println("Die maximale Temperatur liegt bei: " + max + " Grad");
System.out.println("Die minimale Temperatur liegt bei: " + min + " Grad");
for(int i = 0; i<11; i++){
for(int j = 1; j<12; j++){
if(temp < temp[j]){
differenceOne = temp[j] - temp;
}
else if(temp == temp[j]){
differenceOne = 0;
}
else {
differenceOne = temp - temp[j];
} //Difference between Array 0 and 1 //2
for(int x = 1; x<13; x++) {
for(int y = 2; y<14; y++) {
if(temp[x] < temp[y]){
differenceTwo = temp[y] - temp[x];
}
else if(temp[x] == temp[y]){
differenceTwo = 0;
}
else {
differenceTwo = temp[x] - temp[y];
} //Difference between Array 1 and 2 //5
}//4.For Schleife
}//3. For Schleife
}//2. For Schleife
if(differenceOne < differenceTwo) {
differenceTotal = differenceTwo;
}
else {
differenceTotal = differenceOne;
}
if(difference < differenceTotal) {
difference = differenceTotal;
}
} //1. For Schleife
System.out.println("Die größte Differenz liegt bei: " + difference + " Grad");
}
}
Klappt alles wunderbar..allerdings wird, wenn die größte Differenz zwischen temp[1] und temp[2] liegt, in der Konsole die Differenz-1 ausgegeben.
Warum und was kann ich sonst besser machen?
Grüße Juliulli
ich habe folgende Aufgabe bearbeitet:
Aufgabe
Eine Wetterstation hat für 14 Tage folgende Temperaturwerte aufgenommen.
Tag: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Temperatur: 12 14 9 12 15 16 15 15 11 8 13 13 15 12
- Speichere die folgende Tabelle mit einem geeigneten Datentyp.
- Schreibe ein Programm, welches die Durchschnittstemperatur für die zwei Wochen bestimmt.
- Schreibe ein Programm, welches die maximale und minimale Temperatur ausgibt.
- Schreibe ein Programm, welches die beiden aufeinanderfolgenden Tage angeben kann, an denen es den größten Temperaturumschwung gab.
Diese habe ich wie folgt gelöst:
public class Wetterstation {
public static void main(String[] args) {
int average, max, min, differenceOne, differenceTwo, differenceTotal, difference;
float averageTotal;
average = 0;
averageTotal = 0;
differenceOne = 0;
differenceTwo = 0;
differenceTotal = 0;
difference = 0;
int [] temp = { 12, 14, 7, 12, 15, 16, 15, 15, 11, 8, 13, 13, 15, 12}; //Wettertabelle
max = temp[0]; //Maximale Gradzahl
min = temp[0]; //Minimale Gradzahl
for(int i = 0; i<14; i++){
average += temp;
averageTotal = average/14;
} //Berechnung von der Durchschnittstemperatur
System.out.println("Die Durchschnittstemperatur beträgt: " + averageTotal + " Grad");
for(int i = 0; i<14; i++) {
if(max<temp) {
max = temp;
}
if(min>temp) {
min = temp;
}
} //Berechnung von Maximal- und Minimaltemperatur
System.out.println("Die maximale Temperatur liegt bei: " + max + " Grad");
System.out.println("Die minimale Temperatur liegt bei: " + min + " Grad");
for(int i = 0; i<11; i++){
for(int j = 1; j<12; j++){
if(temp < temp[j]){
differenceOne = temp[j] - temp;
}
else if(temp == temp[j]){
differenceOne = 0;
}
else {
differenceOne = temp - temp[j];
} //Difference between Array 0 and 1 //2
for(int x = 1; x<13; x++) {
for(int y = 2; y<14; y++) {
if(temp[x] < temp[y]){
differenceTwo = temp[y] - temp[x];
}
else if(temp[x] == temp[y]){
differenceTwo = 0;
}
else {
differenceTwo = temp[x] - temp[y];
} //Difference between Array 1 and 2 //5
}//4.For Schleife
}//3. For Schleife
}//2. For Schleife
if(differenceOne < differenceTwo) {
differenceTotal = differenceTwo;
}
else {
differenceTotal = differenceOne;
}
if(difference < differenceTotal) {
difference = differenceTotal;
}
} //1. For Schleife
System.out.println("Die größte Differenz liegt bei: " + difference + " Grad");
}
}
Klappt alles wunderbar..allerdings wird, wenn die größte Differenz zwischen temp[1] und temp[2] liegt, in der Konsole die Differenz-1 ausgegeben.
Warum und was kann ich sonst besser machen?
Grüße Juliulli