Quadratische Matrix

Status
Nicht offen für weitere Antworten.

h4nnes

Mitglied
Hallo,

ich möchte gerne eine quadratsiche matrix erstellen, die so ausschaut:



11 12 13 14 15 16 17
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
51 52 53 54 55 56 57
61 62 63 64 65 66 67
71 72 73 74 75 76 77


mein anfang war so:

Code:
import java.io.*;


class MatrixTest
{
      public static void out(int[][]matrix)
      {
        for (int i = 0; i < matrix.length; i++)
        {
          for (int j=0;j<matrix[i].length;j++)
          System.out.print(matrix[i][j] + " ");
          System.out.print("\n");
        }

      }


      public static void main (String[] args) throws IOException
      {
       int nZs;
       /*if (args.length !=1)
          {
           System.err.println("nZs !=1");
           System.exit(1);

          }
       if (nZs < 2)
          {
           System.err.println("nZs !=1");
           System.exit(1);
          } */
          
       BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
       System.out.println("Bitte nZs eingeben");
       nZs = Integer.valueOf(ein.readLine()).intValue();

       int matrix[][]=new int [nZs][nZs];
       
       int dim = nZs-1;
       int i,j;
       int v;
       v=10;
       i=0;

       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v ;
        }

       v=20;
       i=1;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
        
       v=30;
       i=2;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
       

       v=40;
       i=3;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
       
       v=50;
       i=4;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
       
       v=60;
       i=5;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
       
       v=70;
       i=6;
       for (j =0; j<=dim ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }



       
       out(matrix);



      }

}



wie kann ich das gänze mit der dim machen? also dass sich i ständig erhöht?
meine idee war es, eine verschachtelte for schleife, aber dann bekomm ich es nicht hin, dass sich v ständig um 10 erhöht. ich hoffe mir kann jemand helfen, vorallem hoff ich auf die hilfe von SlaterB, der mir das letzte mal sehr weitergeholfen hat.
also meine idee war folgende:

Code:
import java.io.*;

class MatrixTest1
{
      public static void out(int[][]matrix)
      {
        for (int i = 0; i < matrix.length; i++)
        {
          for (int j=0;j<matrix[i].length;j++)
          System.out.print(matrix[i][j] + " ");
          System.out.print("\n");
        }

      }

      public static void main (String[] args) throws IOException
      {
       int nZs;

       BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
       System.out.println("Bitte nZs eingeben");
       nZs = Integer.valueOf(ein.readLine()).intValue();

       int matrix[][]=new int [nZs][nZs];
       
       int dim = nZs-1;
       int i,j;
       int v;
       v=10;

       for (i = 0; i<=dim ; i++)
       {

           for (j =0; j<=dim; j++)
           {
               v= v+1;
               matrix[i][j] = v ;
           }

       }

       out(matrix);

      }

}
 

h4nnes

Mitglied
das ging aber schnell, super danke!

hmm und wie könnte ich dann z.B. so ne schlange umsetzen:

dass sowas rauskommt?

1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
 
M

MrChance

Gast
int spalten = 4;
int zeilen = weite;

int start = 1;
int ende = 1 + spalten;

boolean rückwärts = false;

... so, jetzt musst du nur noch die Schleife zusammenbauen. ;-)
 

h4nnes

Mitglied
ich kann dir bei der rückwärts operation nicht so ganz folgen :(
also ich weiß nicht, wie ich es machen kann, dass wenn die schleife am ende angekommen ist, rückwärts zurückläuft.
meine äußere schleife müsste ja stimmen, so springt er immer um eine zeile nach unten, aber wie muss ich das mit der inneren schleife machen?

habs jetzt mal so versucht:

Code:
 int matrix[][]=new int [nZs][nZs];
       
       dim = nZs-1;
       v=0;
       

       for (i =0; i<=dim ; i++)
       {
           for (j =dim; j>=0 ;j++)
        {
           v= v+1;
           matrix[i][j] = v;
        }
       }
aber das passt leider noch nicht so ganz :(
 

Marco13

Top Contributor
In Zeile 0 schreibst du nacheinander in die Spalten
0 1 2 3 4
In Zeile 1 schreibst du nacheinander in die Spalten
4 3 2 1 0
In Zeile 2 schreibst du nacheinander in die Spalten
0 1 2 3 4
....

D.h. in einer GERADEN Zeile füllst du die Spalten von links nach rechts, und
in einer UNGERADEN Zeile füllst du die Spalten von rechts nach links...

Code:
import java.io.*;


class MatrixTest
{
    public static void main (String[] args)
    {
        int nZs = 5;

        int matrix[][]=new int [nZs][nZs];

        fill(matrix);
        out(matrix);
    }

    private static void fill(int matrix[][])
    {
        for (int r=0; r<matrix.length; r++)
        {
            for (int c=0; c<matrix.length; c++)
            {
                int col = c;
                if (r % 2 == 1) // Wenn die aktuelle Zeile UNgerade ist
                {
                    col = matrix.length - 1 - c; // gehe von rechts nach links
                }
                matrix[r][col] = r*matrix.length + c;
            }
        }
    }

     public static void out(int[][]matrix)
      {
        for (int i = 0; i < matrix.length; i++)
        {
          for (int j=0;j<matrix[i].length;j++)
          System.out.print(matrix[i][j] + " ");
          System.out.print("\n");
        }

      }

}

Ginge evlt. auch effizienter, aber das ist wohl egal.
 
M

MrChance

Gast
Es gibt viele Möglichkeiten, aber für Anfänger ist eine "natürliche" Herangehensweise wohl nachvollziehbarer.

;-)

Code:
	public static void main(String[] args) {
		int dim = 5;
		int [][] m = new int[dim][dim];
		int endwert = 1;
		int wert = 1;
		int schritt = 1;
		boolean rückwärts = false;
		int spalte;
		
		for (int zeile = 0; zeile < 5; zeile++) {
			if (rückwärts) { 
				schritt = -1;      // rückwärtszählen
				spalte = dim-1;    // am Ende der Spalte beginnen
			} else { 
				schritt = 1;       // vorwärts
				spalte = 0;        // am Anfang der Spalte beginnen
			}
			
			endwert += dim;       // Endwert in Matrixbreite-Schritten hochzählen

			while(wert < endwert) { // aktueller Wert kleiner als der Endwert
				m[zeile][spalte] = wert++;
				spalte += schritt;
			}

			rückwärts = !rückwärts;  // Richtung ändern
		}
		

		// Ausgabe:
		for(int z = 0; z < 5; z++){
			for(int j = 0; j < 5; j++){
				System.out.print("m["+z+"]["+j+"]="+m[z][j]+" "  );
			}
			System.out.println();
		}
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
K Quadratische Matrix um 90° drehen Java Basics - Anfänger-Themen 5
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
R quadratische Gleichung Java Basics - Anfänger-Themen 23
M Quadratische Gleichung Java Basics - Anfänger-Themen 6
B Quadratische Gleichung mit JAVA lösen Java Basics - Anfänger-Themen 5
F Quadratische Gleichungen Java Basics - Anfänger-Themen 6
Screen Kurvendiskussion Quadratische Gleichungen Java Basics - Anfänger-Themen 15
K Datentypen Quadratische Spirale Java Basics - Anfänger-Themen 6
S Quadratische Gleichung Java Basics - Anfänger-Themen 5
V Quadratische Gleichung Java Basics - Anfänger-Themen 20
O Quadratische Gleichung Problem?! Java Basics - Anfänger-Themen 7
J HILFE! Quadratische funktion programmieren Java Basics - Anfänger-Themen 3
G Frage wegen Quadratische Gleichung Java Basics - Anfänger-Themen 9
S Quadratische Funktion mit Java primitiv zeichnen. Java Basics - Anfänger-Themen 6
G quadratische Gleichung lösen Java Basics - Anfänger-Themen 2
I matrix aufgabe Java Basics - Anfänger-Themen 22
L Zweidimensionaler Array; n x m - Matrix überprüfuen Java Basics - Anfänger-Themen 35
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
M Matrix Java Basics - Anfänger-Themen 3
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
B Dünn besetzte Matrix Java Basics - Anfänger-Themen 7
Al3xand3r01 Matrix, Nachbarelemente Java Basics - Anfänger-Themen 16
E Rückwärtsmultiplikation einer invertierten matrix Java Basics - Anfänger-Themen 2
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
M Matrix auf 4 Elemente untersuchen mit offenen Enden Java Basics - Anfänger-Themen 8
B Diskrete Faltung (Matrix) Randfälle Java Basics - Anfänger-Themen 8
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
O Matrix, Vektor Java Basics - Anfänger-Themen 9
H 2D Array, Symmetrische Matrix Java Basics - Anfänger-Themen 12
S Matrix spaltenweise befüllen Java Basics - Anfänger-Themen 1
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
C Matrix erstellen Spaltensumme, Zeilensumme, Diagonale Java Basics - Anfänger-Themen 1
S Methoden Transponierte Matrix Java Basics - Anfänger-Themen 3
N Vererbung Submatrix mit Verweis auf Matrix erstellen Java Basics - Anfänger-Themen 9
J Matrix erstellen Java Java Basics - Anfänger-Themen 7
B Transponiertes Matrix Java Basics - Anfänger-Themen 12
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
C Matrix transponieren - Hilfe Java Basics - Anfänger-Themen 1
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
L Matrix(Array) minimieren... Java Basics - Anfänger-Themen 9
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
S eingegebene Matrix anzeigen Java Basics - Anfänger-Themen 4
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
O Matrix Multiplizieren Java Basics - Anfänger-Themen 4
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
T Matrix auf Symmetrie überprüfen Java Basics - Anfänger-Themen 6
V Matrix Transponieren Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
W Zweidimensionale Arrays als Matrix ausgeben Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
O Matrix ordnen Java Basics - Anfänger-Themen 4
M Symmetrische Matrix Java Basics - Anfänger-Themen 2
W Methoden Rang von einer Matrix mit Gauss Java Basics - Anfänger-Themen 0
U Matrix Subtrahieren Java Basics - Anfänger-Themen 12
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
I Matrix überprüfen Java Basics - Anfänger-Themen 8
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
O Einlesen einer Matrix von der Console Java Basics - Anfänger-Themen 18
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Matrix Java Basics - Anfänger-Themen 14
T Methode, die eine 2 dimensionale Matrix kopiert. Java Basics - Anfänger-Themen 16
J Matrix Java Java Basics - Anfänger-Themen 3
D 2 mehrdimensionale Matrix einlesen Java Basics - Anfänger-Themen 2
A N*N Matrix Determinante berechnen Java Basics - Anfänger-Themen 47
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
O Java Matrix mal Matrix über while Schleife... Java Basics - Anfänger-Themen 10
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
M Matrix - Probelm Java Basics - Anfänger-Themen 7
O 2D Matrix befüllen mit geraden Zahlen!? Java Basics - Anfänger-Themen 14
J Java Matrix befüllen Java Basics - Anfänger-Themen 5
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
F Matrix Java Basics - Anfänger-Themen 11
E Array als Matrix Java Basics - Anfänger-Themen 21
G OOP Parameter Matrix Java Basics - Anfänger-Themen 2
N Matrix Klasse Java Basics - Anfänger-Themen 4
B Maske an eine Matrix anpassen Java Basics - Anfänger-Themen 5
W Matrix übergeben Java Basics - Anfänger-Themen 7
T Matrix transponieren Java Basics - Anfänger-Themen 17
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
D Problem: Werte eine Matrix vergleichen! Java Basics - Anfänger-Themen 5
B Matrix Java Basics - Anfänger-Themen 2
Semox Matrix multiplizieren Java Basics - Anfänger-Themen 4
N Matrix an toString Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben