|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
public class MinMax extends MiniJava { public static void main(String[] args) { // Anzahl der einzugebenden Zahlen abfragen int eingaben = readInt("Wie viele Zahlen moechten Sie eingeben?"); if (eingaben < 1) { return; } // Array anlegen int[] zahlen = new int[eingaben]; // Array mit Zahlen fuellen int zahl; int i = 0; while (i < eingaben) { zahl = readInt("Bitte geben Sie die " + (i + 1) + ". Zahl ein."); zahlen[i] = zahl; i++; } // min und max berechnen int min = zahlen[0]; int max = zahlen[0]; i = 1; while (i < eingaben) { if (zahlen[i] < min) { min = zahlen[i]; } if (zahlen[i] > max) { max = zahlen[i]; } i++; } // Ausgeben write("Die kleinste Zahl war " + min); write("Die groesste Zahl war " + max); } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
public class Pascal extends MiniJava { public static void main(String[] args) { int zeilenzahl = read("Geben Sie die Anzahl der Zeilen im Dreieck an."); while (zeilenzahl < 0) { zeilenzahl = read("Geben Sie die Anzahl der Zeilen im Dreieck an. Geben Sie sich dabei etwas Mühe!"); } int[] dreieck = new int[zeilenzahl * (zeilenzahl + 1) / 2]; // Wir berechnen die Zeilen m in einer Schleife. int m = 0; while (m < zeilenzahl) { // Wir nutzen den kleinen Gauß, um den Offset der aktuellen Zeile // zu berechnen. int currentLine = m * (m + 1) / 2; dreieck[currentLine + 0] = 1; // Nulltes Element = 1. dreieck[currentLine + m] = 1; // Letztes Element = 1. // Berechnung der Elemente hinter dem 0tn und vor dem letzten Element. int i1 = 1; while (i1 < m) { // Wir berechnen den Offset der letzten Zeile. int lastLine = (m - 1) * m / 2; dreieck[currentLine + i1] = dreieck[lastLine + i1 - 1] + dreieck[lastLine + i1]; i1++; } m++; } // Wir geben das Dreieck zeilenweise aus. for (int i = 0; i < zeilenzahl; i++) { writeConsole("n = " + i + "\t"); // Ausgabe der Elemente in der Zeile for (int j = 0; j < i + 1; j++) { int currentLine = i * (i + 1) / 2; writeConsole(dreieck[currentLine + j] + "\t"); } writeLineConsole(); } } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
public class Feldverarbeitung extends MiniJava { public static void main(String[] args) { int n; n = read("Bitte geben Sie die Größe des Arrays ein."); while(n < 2) { n = read("Bitte geben Sie eine gültige Größe ein."); } int[] array = new int[n]; int i = 0; while(i < n) { array[i] = read("Bitte geben Sie das nächste Element ein."); i++; } // Teilaufgabe a i = 0; int r = 0; while(i < n) { r += -(2*(i % 2) - 1)*array[i]; i++; } write(r); // Teilaufgabe b int max1 = array[0]; int max2 = array[1]; i = 0; while(i < n) { if(array[i] > max1) { // Ein neues größtes Element wurde gefunden; das bisherige // maximum wird einen Platz nach hinten verschoben. max2 = max1; max1 = array[i]; } else if(array[i] > max2) { // Ein neues zweitgrößes Element wurde gefunden; wir // tauschen das bisherige Element mit diesem aus. max2 = array[i]; } i++; } write(max2); // Teilaufgabe c i = 0; while(i + 1 < n) { array[i] += array[i + 1]; i += 2; } i = 0; while(i < n) { write(array[i]); i++; } } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
public class Palindrom extends MiniJava { public static void main(String[] args) { int n = read("Geben Sie eine Zahl n >= 0 ein."); while (n < 0) { n = read("Die Zahlen >= 0 sind die ohne Minuszeichen..."); } // Wir zählen zunächst die Anzahl der Ziffern der Zahl n, indem wir die Zahl // durch 10 dividieren, bis diese den Wert 0 hat. Die Anzahl der Divisionen // entspricht der Anzahl der Ziffern. int numberOfDigits = 0; int t = n; while (t != 0) { numberOfDigits++; t = t / 10; } int[] digits = new int[numberOfDigits]; // Wir lesen nun die Ziffern in ein Array ein. Eine Ziffer erhalten wir als // Divisionsrest durch 10. Die Reihenfolge, in der wir die Zahl im Feld // ablegen, spielt für den Palindrom-Test keine Rolle. int i = 0; while (n != 0) { int digit = n % 10; digits[i] = digit; n = n / 10; i++; } // Schließlich testen wir die Palindrom-Eigenschaft, indem wir Ziffern // zählen, die sich von vorne bzw. hinten gelesen unterscheiden. Gibt es // keine derartigen Ziffern, handelt es sich um ein Palindrom. int notMatching = 0; i = 0; while (i < numberOfDigits / 2) { if (digits[i] != digits[numberOfDigits - i - 1]) notMatching++; i++; } if (notMatching == 0) write("Palindrom!"); else write("Kein Palindrom."); } } |