Methoden Diagonalen am best. Punkt im zweidimensionales array finden

ChungaChanga

Neues Mitglied
Hallo Leute habe einen Problem Diagonale um einen Punkt zu finden.
z.B. 5x5 Matrix
int array[][] = new int[5][5];


0 [0] [0] [0] [0] [0]

1 [0] [0] [0] [9] [0]

2 [0] [0] [0] [0] [0]

3 [0] [0] [0] [0] [0]

4 [0] [0] [0] [0] [0]


Ich muss eine 9 setzen siehe array[1][3] das habe ich hinbekommen oder sage ich mal so es ist vorgegeben.

Und danach muss ich um die "9" alle Diagonale mit "1" befüllen siehe unten:

0 [0] [0] [1] [1] [1]

1 [1] [1] [1] [9] [1]

2 [0] [0] [1] [1] [1]

3 [0] [1] [0] [1] [0]

4 [1] [0] [0] [1] [0]

wenn ich das gemacht habe kann ich nächste "9 setzen und diagonalen wieder mit "1" befüllen bis es nicht mehr geht.

Mir fehlt Ansatz wie errechne ich mit der Schleife die Diagonale (genau gesagt von rechts oben nach links unten und andersrum) um kein Exception zu bekommen.
Horizontal und Vertikal habe ich auch hinbekommen.

Bitte um Hilfe
 
Zuletzt bearbeitet:

knilch

Bekanntes Mitglied
Hi,
Nachfolgend mal ein Beispiel.
Vielleicht hilft es dir weiter....
Java:
public class Matrix {
	private double matrix[][];
	
	/**
	 * Constructor
	 */
	public Matrix() {
		initMatrix();	
	}
	
	/**
	 * Method to initalize the matrix
	 */
	private void initMatrix() {
		matrix = new double[][] {
				{0,0,0,0,0},
				{0,0,0,9,0},
				{0,0,0,0,0},
				{0,0,0,0,0},
				{0,0,0,0,0}	
		};
	}

	/**
	 * Method to get a vector from a matrix 
	 * @param number
	 * @return vector
	 */
	public Vector getVector(int number) {
		Vector vector = null;
		for (int m = 0; m < matrix.length; m++) {
			for (int n = 0; n < matrix[0].length; n++) {
				if(matrix[m][n] == number)
					vector = new Vector(m, n);
			}
		}
		return vector;
	}
	
	/**
	 * Method to get a new Matrix
	 * @param vector
	 * @param number
	 * @return
	 */
	public double[][] getNewMatrix(Vector vector, int number) {
		double[][] newMatrix = new double[matrix.length][matrix[0].length];
		
		// kopieren der inhalte von matrix in die neue Matrix
		System.arraycopy( matrix, 0, newMatrix, 0, matrix.length );
		
		// fülle Zeile der neuen Matrix mit 1
		for (int i = 0; i < newMatrix.length; i++) {
			newMatrix[vector.m][i] = 1;
		}
		
		// fülle Kolonne der neuen Matrix mit 1
		for (int i = 0; i < newMatrix[0].length; i++) {
			newMatrix[i][vector.n] = 1;
		}
		
		int j = newMatrix.length-1;
		// fülle die Diagonale der neuen Matrix mit 1	
		for (int i = 0; i < newMatrix.length; i++) {
					newMatrix[i][j--] = 1;	
		}
		
		// setzten der nummer in die vector- position
		newMatrix[vector.m][vector.n] = number;
		
		return newMatrix;
	}
	
	/**
	 * Methode to print the matrix content
	 * @param m
	 */
	private void printMatrix(double[][] m) {
		for (int i = 0; i < m.length; i++) {
			for (int j = 0; j < m[0].length; j++) {
				System.out.print(m[i][j] + "  ");
			}
			System.out.println();
		}
	}
	
	/**
	 * Method for testing
	 */
	public void test() {
		int number = 9;
		Vector vector = getVector(number);
		
		double[][] matrix2 = getNewMatrix(vector, number);
		
		printMatrix(matrix2);
			
	}
	
	/**
	 * Main method to start the program
	 * @param args
	 */
	public static void main(String[] args) {
		Matrix matrix = new Matrix();
		matrix.test();	
	}
	
	/**
	 * Internal class to represent a matrix vector
	 *
	 */
	class Vector {
		int m;
		int n;
		public Vector(int m, int n) {
			this.m=m;
			this.n=n;
		}

	}
}
 
Zuletzt bearbeitet:

ChungaChanga

Neues Mitglied
Habe es ausprobiert und nicht ganz verstanden da ich erst beim Ersten Semester bin.
Konstruktoren haben wir noch nicht.
Aber laufen tut es schon.
Nur fehlt eine andere Dieagonal und zwar von links oben nach rechts unten.:(
 

knilch

Bekanntes Mitglied
Hi,
Habe es ausprobiert und nicht ganz verstanden da ich erst beim Ersten Semester bin.
Konstruktoren haben wir noch nicht.
Aber laufen tut es schon.
Was verstehst du nicht?

Nur fehlt eine andere Dieagonal und zwar von links oben nach rechts unten
Hier nochmals die Methode, nun mit der rechten und linken Diagonale
Java:
	public double[][] getNewMatrix(Vector vector, int number) {
		double[][] newMatrix = new double[matrix.length][matrix[0].length];
		
		// kopieren der inhalte von matrix in die neue Matrix
		System.arraycopy( matrix, 0, newMatrix, 0, matrix.length );
		
		// fülle Zeile der neuen Matrix mit 1
		for (int i = 0; i < newMatrix.length; i++) {
			newMatrix[vector.m][i] = 1;
		}
		
		// fülle Kolonne der neuen Matrix mit 1
		for (int i = 0; i < newMatrix[0].length; i++) {
			newMatrix[i][vector.n] = 1;
		}
		
		int j = newMatrix.length-1;
		// fülle die Diagonale der neuen Matrix mit 1 von rechts nach links	
		for (int i = 0; i < newMatrix.length; i++) {
					newMatrix[i][j--] = 1;	
		}
		
		j=0;
		// fülle die Diagonale der neuen Matrix mit 1 von links nach rechts	
		for (int i = 0; i < newMatrix.length; i++) {
					newMatrix[i][j++] = 1;	
		}
		
		// setzten der nummer in die vector- position
		newMatrix[vector.m][vector.n] = number;
		
		return newMatrix;
	}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Quadrat mit Diagonalen Java Basics - Anfänger-Themen 3
S Zweidimensionales Array mit Diagonalen Java Basics - Anfänger-Themen 9
L Zahlen auf Diagonalen im Array Java Basics - Anfänger-Themen 15
U Diagonalen in 2D Array addieren Java Basics - Anfänger-Themen 4
G Quadrat mit Diagonalen ausgeben Java Basics - Anfänger-Themen 4
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
OnDemand Branching Best Practise Java Basics - Anfänger-Themen 7
P JUnitTest Best Practise (Ein Assert pro Test?) Java Basics - Anfänger-Themen 10
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
E Arrays nach best Muster füllen Java Basics - Anfänger-Themen 4
N Vererbung Best Practice: Verfeinerte Klassenvariablen in Unterklasse Java Basics - Anfänger-Themen 5
boscho87 Objekte übergeben Best Practice Java Basics - Anfänger-Themen 1
L Best Practice: Klassen übersetzen Java Basics - Anfänger-Themen 4
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
L Best Practise - 'instanceof' oder nicht. Java Basics - Anfänger-Themen 7
D Best Practise für Programmierung Java Basics - Anfänger-Themen 7
K Warum ist ein Singleton kein Best Practise? Java Basics - Anfänger-Themen 3
P Initialisierung einer 5*5 Matrix mit best. Werten Java Basics - Anfänger-Themen 2
C Anker Punkt setzen. Java Basics - Anfänger-Themen 1
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
JavaBeginner22 Punkt auf Gerade Java Basics - Anfänger-Themen 59
K Gleitkommazahl macht man 0 punkt matisse oder 1 punkt matisse Java Basics - Anfänger-Themen 2
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
Ich lerne Java. Methoden Mehrere Methoden mit Punkt Java Basics - Anfänger-Themen 45
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
H Punkt bewegt sich auf einer Ellipse Java Basics - Anfänger-Themen 6
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
P Datentypen Kann ich bei double Komma statt Punkt eingeben? Java Basics - Anfänger-Themen 14
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
L Punkt innerhalb eines Bereiches verschieben Java Basics - Anfänger-Themen 9
G Bis zu einem bestimmten Punkt aus Datei lesen Java Basics - Anfänger-Themen 2
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
E Erste Schritte Vorschläge für mich zum Thema Punkt vor Strich ? Java Basics - Anfänger-Themen 7
Z Double in komma und Punkt akzeptieren -> Robusteeingabe Java Basics - Anfänger-Themen 7
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Punkt in Java zeichnen Java Basics - Anfänger-Themen 14
Y Was bedeutet "this" ohne dem Punkt und dem Atrributnamen danach? Java Basics - Anfänger-Themen 2
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
H inputfeld dezimalzahl mit komme statt punkt Java Basics - Anfänger-Themen 12
R Double: auf einmal Komma statt Punkt Java Basics - Anfänger-Themen 4
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5
S 3d Punkt in Java3D Java Basics - Anfänger-Themen 4
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
K Methoden contains()-Methode für Punkt in Polygon Java Basics - Anfänger-Themen 5
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
R ArrayList<String> Komma oder Punkt "replacen" Java Basics - Anfänger-Themen 5
C Punkt oder Kommanotation. Java Basics - Anfänger-Themen 7
B Kreis,Punkt,Zylinder Java Basics - Anfänger-Themen 6
A Eine Frage zu AWt in JAVA, wie wähle ich ein Punkt aus`? Java Basics - Anfänger-Themen 4
H sprung zu einem anderen punkt im script Java Basics - Anfänger-Themen 11
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
TheKing Objekt um Punkt kreisen lassen Java Basics - Anfänger-Themen 7
W Regex mit Punkt Java Basics - Anfänger-Themen 2
T Punkt zeichnen auf sinus Java Basics - Anfänger-Themen 7
T mehrere methoden durch punkt getrennt Java Basics - Anfänger-Themen 2
R Meine erste Klasse: Punkt Java Basics - Anfänger-Themen 3
G Punkt auf Bildschirm erstellen? Java Basics - Anfänger-Themen 14
G bei double nur Wert vor Punkt ausgeben Java Basics - Anfänger-Themen 6
T Wie Eingabe von Gleitkommazahl mit Komma statt Punkt Java Basics - Anfänger-Themen 4
B Bestimmten Punkt im KOS ermitteln Java Basics - Anfänger-Themen 14
W Punkt statt Komma? Java Basics - Anfänger-Themen 2
G Punkt bz. Kugel Java Basics - Anfänger-Themen 6
K AWT: Punkt (0,0) hinter Titelzeile oder 'getTitelzeilenhöhe' Java Basics - Anfänger-Themen 5
G contains - Punkt in Kreis enthalten? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben