Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
MoinMoin zusammen...
Ich soll eine Methode erstellen welche überprüft ob eine Matrix eine Quadratische Diagonalmatrix ist...
Ich hab das Teil nun fertig, check aber irgendwie nicht wo der von die Konsole Angezeigte Syntax Error ist...
Danke! ;-)
Java:
void setup(){
double[][] matrix={{1,0,0},{0,1,0},{0,0,1}}; // Checkmatrix
}
boolean isDiag(double[][] matrix){
boolean a=true;
int m= matrix.length;
int n=matrix[0].length;
int i=0;
int k=0;
if(n!=m){a=false;}
while(a==true;k<m){if(matrix[i][k]!=0|matrix[i][i]){a=false;};
if(i/(m-1)==1){k++;}else i++;}
return a;}
Hi,
Das ist schon irgendwie ein merkwürdige überprüfung ob die Matrix Diagonal ist..
Versuch mal dies:
Java:
public class Test {
public static void main(String[] args) {
double[][] matrix = {{1,0,0},{0,1,0},{0,0,1}}; // Checkmatrix
System.out.println(isDiag(matrix));
System.out.println(isSymmetric(matrix));
}
public static boolean isDiag(double[][] matrix){
int m = matrix.length;
int n = matrix[0].length;
if(n != m)
return false;
for (int i = 0; i < m; i++) {
if(matrix[i][i] != 1)
return false;
}
return true;
}
public static boolean isSymmetric(double[][] matrix) {
int n = matrix.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
if (matrix[i][j] != matrix[j][i])
return false;
}
}
return true;
}
}
Erstmal ist dein Code (sorry) schrecklich formatiert. Bitte ändere das zuerst. Dann macht das Korrigieren auch viel mehr Spaß.
Ich glaube, es hat was mit dem Semikolon in dem Kopf der While-Schleife zu tun.
hey, srry weiss nicht so recht wie die Formatkonventionen so sind... hoffe so is besser;-)
hattest uebrigens recht, das ";" in der while hab ich durch && ersetzt...
jetzt muss ich noch nen geeigneten oder Operator statt "|" finden (fuer den Schleifenkörper..)
Java:
void setup() {
double[][] matrix= {{1,0,0},{0,1,0},{0,0,1}}; // Checkmatrix
}
boolean isDiag(double[][] matrix) {
boolean a=true;
int m= matrix.length;
int n=matrix[0].length;
int i=0;
int k=0;
if (n!=m) {
a=false;
}
while (a==true&&
k<m) {
if (matrix[i][k]!=0|matrix[i][i]) {
a=false;
};
if (i/(m-1)==1) {
k++;
}
else i++;
}
return a;
}
Noch ein Tipp: die Vergleichsoperatoren und (&&) und oder (||) sind immer doppelte Zeichen. Einfache sind Rechenoperationen auf Bit Ebene. Zum Beispiel ist 0011&1101=0001 weil nur am ersten Index beide Bits 1 sind. 1100|0010=1110, weil hier an nur einem Index kein Bit 1 ist.