Array hilfe

HeiTim

Mitglied
Hallo zusammen,
die Aufgabe lautet :
ervollständigen Sie die unten stehenden Java-Zeilen so, dass Sie ein zweidimensionales Array intArray vom Typ int mit der Größe 10 x 10 deklarieren, anlegen und initialisieren.

Zum Beispiel:
2 2 2 2 2 2 2 2 2 2
2 4 6 8 10 12 14 16 18 20
2 6 10 14 18 22 26 30 34 38
2 8 14 20 26 32 38 44 50 56
2 10 18 26 34 42 50 58 66 74
2 12 22 32 42 52 62 72 82 92
2 14 26 38 50 62 74 86 98 110
2 16 30 44 58 72 86 100 114 128
2 18 34 50 66 82 98 114 130 146
2 20 38 56 74 92 110 128 146 164

ich hab es nun so gemacht:
public class prgg {

public static void main(String[] args) {
int[][] matrix = {{2}, {2,4,6,8,10,12,14,16,18,20}, {2,6,10,14,18,22,26,30,34,38}, {2,8,14,20,26,32,38,44,50,56}, {2,10,18,26,34,42,50,58,66,74}, {2,12,22,32,42,52,62,72,82,92},{2,14,26,38,50,62,74,86,98,110}, {2,16,30,44,58,72,86,100,114,128}, {2,18,34,50,66,82,98,114,130,146},
{2,20,38,56,74,92,110,128,146,164}};

for(int i=0; i < matrix.length; i++) {
for(int j=0; j < matrix.length; j++)
System.out.print(matrix[j]+" ");
System.out.println();
}
}
}


nun ist eigentlich alles richtig ausser das ich nicht in der ersten zeile die ganzen 2 bekomme sondern nur einmal wie ändere ich das?
Danke.













Initialisieren Sie die Werte mit Zeilenindex * Spaltenindex * 2, beginnend mit dem Wert 2.

Benutzen Sie for-Schleifen zum Initialisieren.
 
Du initialisierst das Array mit nur einer 2. Wenn du es echt so machen willst, dann musst du es mit {2, 2, 2, ...} inititalisieren.
Wobei ich mir nicht vorstellen kann, dass du die Aufgabe tatsächlich so lösen sollst.
Initialisieren Sie die Werte mit Zeilenindex * Spaltenindex * 2
Java:
int[][] matrix = new int[10][10];
Und nun in der For schleife die Werte berechnen.
 
Du initialisierst das Array mit nur einer 2. Wenn du es echt so machen willst, dann musst du es mit {2, 2, 2, ...} inititalisieren.
Wobei ich mir nicht vorstellen kann, dass du die Aufgabe tatsächlich so lösen sollst.

Java:
int[][] matrix = new int[10][10];
Und nun in der For schleife die Werte berechnen.
Wenn du es so sagst denk ich müsstest du schon recht haben den es wäre ja zu umständlich alles einzutippen jedoch müsste ich ja wenn schon
int[][] matrix = new int[20][20];
Eingeben damit es mir dieZeilen und Spalten richtig ausgibt aber was muss ich den in der for Schleife berechnen um das Ergebnis raus zu kriegen wäre nett wenn mir da jemand helfen könnte stehe auf dem Schlauch
 
Äh, nein. Dann wäre die Matrix ja 20x20 groß - Du willst 10x10.


Wenn Du Dir das Ergebnis ansiehst, erkennst Du eine Regelmäßigkeit?
ja ich erkenne eine Regelmäßigkeit wird es immer um zwei erhöht also in der ersten Zeile ist alles 2 in der zweiten Zeile wird um 2 erhöht in der dritten Zeile um 4 in der vierten Zeile um 6 usw. Aber ich krieg es nicht gebacken es so auszuführen.
 
Aber ich krieg es nicht gebacken es so auszuführen.
Langsam, langsam 🙂

Die Regelmäßigkeit hast Du ja schon erkannt: Jede Zeile beginnt mit einer 2 und die Werte der Zeile werden in jeder Spalte um ein gewisses Delta erhöht.

Aufgabe: schreibe eine Schleife, die die Werte der Matrix für die Zeile zeile und das Delta delta setzt:
Java:
int zeile = 0;
int delta = 2;

// hier Deine Schleife.
 
Langsam, langsam 🙂

Die Regelmäßigkeit hast Du ja schon erkannt: Jede Zeile beginnt mit einer 2 und die Werte der Zeile werden in jeder Spalte um ein gewisses Delta erhöht.

Aufgabe: schreibe eine Schleife, die die Werte der Matrix für die Zeile zeile und das Delta delta setzt:
Java:
int zeile = 0;
int delta = 2;

// hier Deine Schleife.
Tut mir leid das ich vielleicht störe mit meinen fragen jedoch hab ich es wirklich nicht verstanden, was du damit sagen willst und ob das etwas ändert an meinem Code.
ich habe es nun also so:
Java:
         public static void main(String[] args) {
                 int[][] intArray = new int[10][10];
    
                 for(int i=0; i < intArray.length; i++) {
                 for(int j=0;j < intArray[i].length; j++)
                 System.out.print(intArray[i][j] + " ");
                 System.out.println( );
                 }
                 }
und muss möglichst so machen, dass ich nichts im Bildschirmausgabefeld eingeben muss.
 
OK, Du hast aktuell zwei Schleifen, das i iteriert über die Zeilenindizes und das j über die Spaltenindizes. Mein Ansatz oben wäre von Anfang an gewesen, aber wir können das auch so machen:
Java:
public static void main(String[] args) {
    int[][] intArray = new int[10][10];
 
    int delta = 4;
    for(int i=0; i < intArray.length; i++) {
        for(int j=0;j < intArray[i].length; j++)
            // TODO
            System.out.print(intArray[i][j] + " ");
        }
        System.out.println();
    }
}
Setze in der inneren Schleife (an der mit TODO markierten Stelle) den Wert von intArray[i][j] derart, dass die erste Spalte mit einer 2 beginnt und in jeder Spalte um delta erhöht wird.

Du solltest dann für jede Zeile eine Ausgabe der Form: 2 6 10 14 ... erhalten.
 
OK, Du hast aktuell zwei Schleifen, das i iteriert über die Zeilenindizes und das j über die Spaltenindizes. Mein Ansatz oben wäre von Anfang an gewesen, aber wir können das auch so machen:
Java:
public static void main(String[] args) {
    int[][] intArray = new int[10][10];
 
    int delta = 4;
    for(int i=0; i < intArray.length; i++) {
        for(int j=0;j < intArray[i].length; j++)
            // TODO
            System.out.print(intArray[i][j] + " ");
        }
        System.out.println();
    }
}
Setze in der inneren Schleife (an der mit TODO markierten Stelle) den Wert von intArray[i][j] derart, dass die erste Spalte mit einer 2 beginnt und in jeder Spalte um delta erhöht wird.

Du solltest dann für jede Zeile eine Ausgabe der Form: 2 6 10 14 ... erhalten.
Ich komm da einfach nicht drauf ich krieg es nicht hin
 
Schau Dir doch einfach die Spalten an:
Code:
 0  1  2  3  4  5 ... (Spaltenindex j)
 2  6 10 14 18 22 ... (Werte)
Ziehen wir mal die 2 am Anfang ab, erhalten wir:

Code:
 0  1  2  3  4  5 ... (Spaltenindex j)
 0  4  8 12 16 20 ... (Werte)
und das ist ja wohl nichts anderes als j*4 (allgemein also j*delta). Um die Werte oben zu erhalten, müssen wir also nur noch die 2, die wir gerade abgezogen haben, wieder addieren: 2+j*4 (allgemein also 2+j*delta).

An der TODO markierten Stelle müsste also stehen:
Java:
intArray[i][j] = 2+j*delta;

Auf den Rest darfst Du jetzt alleine kommen.
 

Neue Themen


Zurück
Oben