Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Matrix (http://www.informatikerboard.de/board/thread.php?threadid=2013)


Geschrieben von neuling96 am 17.12.2014 um 20:05:

  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?



Geschrieben von eulerscheZahl am 17.12.2014 um 20:41:

 

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;     
}



Geschrieben von neuling96 am 17.12.2014 um 21:06:

 

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;
  



Geschrieben von eulerscheZahl am 18.12.2014 um 12:16:

 

sieht gut aus.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH