Matrix

Neue Frage »

Auf diesen Beitrag antworten »
neuling96 Matrix

boolean gleich vergleicht zwei zeile ob sie indentisch sind
boolean enthaeltSpalte vergleicht eine matrix ob eine spalte enthalten ist
boolean entaelt spalte vergleicht eine matrix ob eine zeile enthalten ist
boolean transponieren soll eine matrix transponieren
code:
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:
   public class Matrix {

    static int[][] matrix = {
        { 1,  2,  3},
        { 4,  5,  6},
        { 7,  8,  9},
        {10, 11, 12}
    };

    public static boolean gleich(int[] a1, int[] a2) {
       boolean ergo = true;
if (a1.length== a2.length){
for (int i=0; i<a1.length;i++){
    if (!(a1[i]== a2 [i])) {
    ergo = false;
          break;
     }
   }
}
    return ergo;
     
    }
    
public static boolean enthaeltSpalte(int[][] matrix, int[] spalte) {
        
    boolean ergo = true;
   if (matrix.length== spalte.length){
for (int i=0; i<matrix[0].length; i++){
      ergo= true;
for (int y=0; y<matrix.length; y++){
if( !(matrix [y][i]== spalte [y])) {                         }
                ergo = false;
         break;
                 }
                }
              }
                         
            return ergo;
     }
 
    public static boolean enthaeltZeile(int[][] matrix, int[] zeile) {
    boolean ergo = true;
   if (matrix[0].length== zeile.length){
for (int i=0; i<matrix.length; i++){
      ergo= true;
for (int y=0; y<matrix.length; y++){
if( !(matrix [i][y]== zeile [y])){

    ergo = false;
         break;
                       }
                   }
                 }
              }
      return ergo;     
 }
    


  
         
    public static int[][] transponieren(int[][] matrix) {
        int [][] t= new int [matrix[0].length][matrix.length];
for (int i=0; i<matrix[0].length; i++){
for (int y=0; y<matrix.length; y++){
t[i][y]= matrix [y][i];
          }
        }
           return t;
     
   

 }

    public static void main(String[] args) {
        System.out.println("gleich({1,2,3}, {1,2,3}): "
                + gleich(new int[]{1, 2, 3}, new int[]{1, 2, 3})); // true

        System.out.println("enthaeltZeile(matrix, {1,2,3}): "
                + enthaeltZeile(matrix, new int[]{1, 2, 3})); // true
    }

}



Fehlermeldung: expection in thread "main" java.lang.arryindexofboundsexpcetion

was mache ich falsch?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Du kamst mit den Dimensionen der Matrix durcheinander und hast Breite und Höhe vertauscht.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
public static boolean enthaeltZeile(int[][] matrix, int[] zeile) {
	int breite = matrix.length;
	int hoehe = matrix[0].length;
	boolean ergo = true;
	if (breite == zeile.length){
		for (int i=0; i < hoehe; i++){
			ergo= true;
			for (int y=0; y< breite; y++){
				if( !(matrix [i][y]== zeile [y])){
					ergo = false;
					break;
				}
			}
		}
	}
	return ergo;     
}
Auf diesen Beitrag antworten »
neuling96

ah vielen dank
ist das korrekt?
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 public static int[][] transponieren(int[][] matrix) {
        int [][] t= new int [matrix[0].length][matrix.length];
for (int i=0; i<matrix[0].length; i++){
for (int y=0; y<matrix.length; y++){
t[i][y]= matrix [y][i];
          }
        }
           return t;
  
Auf diesen Beitrag antworten »
eulerscheZahl

sieht gut aus.
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »