====== Übungsblatt (Aufgabe 4 - 7) ======
==== Aufgabe 4 (zweidimensionale Arrays) ====
**a) Schreiben Sie eine Klasse mit einem Attribut **\\ int[][] zahlen = new int[10][10]; \\
**b) Fügen Sie eine Methode ausgabe(int[][] feld) hinzu, die die Werte der Feldelemente zeilen- und spaltenweise ausgibt.** \\
// Tipp: ''zahlen.length'' ist die Anzahl der Zeilen des zweidimensionalen Feldes, ''zahlen[i].length'' die Anzahl der Spalten in der i-ten Zeile.// \\
**c) Fügen Sie eine Methode initialbelegung(int[][] feld) hinzu, die das Feld von 0 an aufsteigend zeilen- und spaltenweise mit fortlaufenden ganzen Zahlen belegt!** \\
**d) Fügen Sie eine Methode schachfeldbelegung(int[][] feld) hinzu, die das Feld wie ein Schachfeld abwechselnd mit 0 und 1 belegt!** \\
**e) Fügen Sie eine Methode spiegeln(int[][] feld) hinzu, die das Feld entlang der Achse feld[0][0], feld[1][1], ... spiegelt!** \\
package test.informatik10.arbeitsblatt1;
public class Aufgabe4 {
private int[][] zahlen = new int[10][10];
public static void main(String[] args) {
new Aufgabe4().start();
}
private void start() {
initialbelegung(zahlen);
ausgabe(zahlen);
spiegeln(zahlen);
ausgabe(zahlen);
schachfeldbelegung(zahlen);
ausgabe(zahlen);
}
private void spiegeln(int[][] feld) {
int zeile = 0;
while(zeile < feld.length){
int spalte = 0;
while(spalte < zeile){
int z = feld[zeile][spalte];
feld[zeile][spalte] = feld[spalte][zeile];
feld[spalte][zeile] = z;
spalte++;
}
zeile++;
}
}
private void schachfeldbelegung(int[][] feld) {
int zeile = 0;
while(zeile < feld.length){
int spalte = 0;
while(spalte < feld.length){
feld[zeile][spalte] = (zeile + spalte) % 2;
spalte++;
}
zeile++;
}
}
private void initialbelegung(int[][] feld) {
int i = 0;
int zeile = 0;
while(zeile < feld.length){
int spalte = 0;
while(spalte < feld.length){
feld[zeile][spalte] = i;
i++;
spalte++;
}
zeile++;
}
}
private void ausgabe(int[][] feld) {
int zeile = 0;
while(zeile < feld.length){
int spalte = 0;
while(spalte < feld.length){
System.out.print(feld[zeile][spalte] + " ");
if(feld[zeile][spalte] < 10){
System.out.print(" ");
}
spalte++;
}
System.out.println();
zeile++;
}
System.out.println("------------------------------------------------");
}
}
**Ausgabe des Programms:**
0 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
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
------------------------------------------------
0 10 20 30 40 50 60 70 80 90
1 11 21 31 41 51 61 71 81 91
2 12 22 32 42 52 62 72 82 92
3 13 23 33 43 53 63 73 83 93
4 14 24 34 44 54 64 74 84 94
5 15 25 35 45 55 65 75 85 95
6 16 26 36 46 56 66 76 86 96
7 17 27 37 47 57 67 77 87 97
8 18 28 38 48 58 68 78 88 98
9 19 29 39 49 59 69 79 89 99
------------------------------------------------
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
------------------------------------------------
Process finished with exit code 0
==== Aufgabe 5 (Intervallschachtelung) ====
**Schreiben Sie eine Methode ''double wurzel(double z)'', die mit Hilfe von Intervallschachtelung die Wurzel der übergebenen Zahl ''z'' berechnet!** \\
==== Aufgabe 6 (Fakultät, rekursiv) ====
**Schreiben Sie eine Methode ''long fakultaet(long z)'', die die Fakultät der übergebenen Zahl ''z'' berechnet, indem sie** \\
a) im Fall z > 0 den Wert z * fakultaet(z - 1) und
b) im Fall z == 0 den Wert 1 zurückgibt!
==== Aufgabe 7 (Summe, rekursiv) ====
**Schreiben Sie eine Methode ''long summe(long n)'', die mit Hilfe von Rekursion den Wert der Summe '' 1 + 2 + ... + n'' berechnet!** \\
**Lösungen von Aufgabe 5 - 7: ** \\
package test.informatik10.arbeitsblatt1;
public class Aufgabe5Bis7 {
public static void main(String[] args) {
new Aufgabe5Bis7().start();
}
private void start() {
double w = wurzel(2.00);
System.out.println("Die Wurzel von 2 ist: " + w);
long f = fakultaet(10);
System.out.println("10! = " + f);
long s = summe(20);
System.out.println("Die Summe von 1 bis 20 ist: " + s);
}
private long summe(long n) {
if(n == 1){
return 1;
}
return n + summe(n - 1);
}
private double wurzel(double z) {
double links = 0;
double rechts = z;
while( rechts * rechts - z > 0.000000001 || z - links * links > 0.000000001 ){
double mitte = (rechts + links)/2;
if(mitte * mitte > z){
rechts = mitte;
} else {
links = mitte;
}
}
return (rechts + links)/2;
}
private long fakultaet(long n) {
if(n == 0){
return 1;
}
return n * fakultaet(n - 1);
}
}
**Ausgabe: ** \\
Die Wurzel von 2 ist: 1.4142135622678325
10! = 3628800
Die Summe von 1 bis 20 ist: 210