public class Feldverarbeitung extends MiniJava { public static void main(String[] args) { // Nach gewünschter Größe n fragen (geht auch wie beim letzten Mal ohne "break"): int n; while (true) { n = read("Gewünschte Arraygröße (n) eingeben:"); if (n >= 2) break; // Schleife verlassen, wenn Eingabe gültig write("Irrtum! Das Array muss mindestens die Größe 2 haben."); } // Elemente des Arrays eingeben lassen: int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = read("Wie lautet die " + (i+1) + ". Zahl des Arrays?"); // 1. Gerade Indizes (0-(n-1)) addieren, ungerade subtrahieren: int sum = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0) // gerade sum += a[i]; else // ungerade sum -= a[i]; } write("1. Summe: " + sum); // 2. Zweitgrößtes Element finden: int max, max2; // Index des größten bzw. zweitgrößten Elements // Anfangszustand: Ersten beiden Elemente betrachten if (a[0] > a[1]) { max = 0; max2 = 1; } else { max2 = 0; max = 1; } // Für alle weiteren ggf. überschreiben. for (int i = 2; i < n; i++) { if (a[i] > a[max2]) { max2 = i; if (a[i] > a[max]) { max2 = max; max = i; } } } write("Zweitgrößtes Element: " + a[max2]); // 3. Jeweils zwei zusammenfassen (0+1, 2+3, 4+5, ...): for (int i = 0; i < n-1; i += 2) a[i] += a[i+1]; // Ausgabe: for (int i = 0; i < n; i++) writeConsole(a[i] + ", "); writeLineConsole(); } }