Andreas Wurst 2025-05-20 16:25:28 +02:00
parent f22a7f08cd
commit baf31141c8
3 changed files with 49 additions and 41 deletions

View File

@ -9,11 +9,10 @@ public class Time {
formatRichtig = false;
} else if (time.length() != 5 || time.charAt(2) != ':') {
formatRichtig = false;
} else {
if (time.matches(regex)) {
formatRichtig = true;
}
} else if (time.matches(regex)) {
formatRichtig = true;
}
return formatRichtig;
}

View File

@ -2,14 +2,18 @@
public class Vector {
public static void scalarMultiplication(int[] vector, int scalar) {
for (int position = 0; position < vector.length; position++) {
vector[position] *= scalar;
if (vector != null) {
for (int position = 0; position < vector.length; position++) {
vector[position] *= scalar;
}
}
}
public static void vectorProduct(int[] vector1, int[] vector2) {
if (vector1.length == vector2.length && vector2.length == 3) {
if (vector1 == null || vector2 == null) {
System.out.println("Wegen unterschiedlichen Dimensionen ist das Kreuzprodukt nicht erlaubt");
} else if (vector1.length == vector2.length && vector2.length == 3) {
int[] kreuzVektor3D = new int[3];
kreuzVektor3D[0] = (vector1[1] * vector2[2]) - (vector1[2] * vector2[1]);
kreuzVektor3D[1] = (vector1[2] * vector2[0]) - (vector1[0] * vector2[2]);
@ -32,10 +36,12 @@ public class Vector {
public static double vectorLength(int[] vector) {
double qSumme = 0.0;
double betrag = 0.0;
for (int i = 0; i < vector.length; i++) {
qSumme = qSumme + (vector[i] * vector[i]);
if (vector != null) {
for (int i = 0; i < vector.length; i++) {
qSumme = qSumme + (vector[i] * vector[i]);
}
betrag = Math.sqrt(qSumme);
}
betrag = Math.sqrt(qSumme);
return betrag;
@ -43,20 +49,18 @@ public class Vector {
public static int[][] matrixMultiplication(int[][] matrix, int scalar) {
int[][] ausgabe;
if (matrix == null){
if (matrix == null) {
ausgabe = null;
}
else if (matrix.length == 3 && matrix[0].length == 3 && matrix[1].length == 3 && matrix[2].length == 3) {
} else if (matrix.length == 3 && matrix[0].length == 3 && matrix[1].length == 3 && matrix[2].length == 3) {
ausgabe = new int[3][3];
for (int außenPos = 0; außenPos < matrix.length; außenPos++) {
for (int innenPos = 0; innenPos < matrix[außenPos].length; innenPos++) {
ausgabe[außenPos][innenPos] = matrix[außenPos][innenPos] * scalar;
}
}
}
else {
} else {
ausgabe = null;
}

View File

@ -7,23 +7,25 @@ public class VectorTest {
@Test
void testScalarMultiplicationVariants() {
int[] v1 = { 1, -2, 3 };
Vector.scalarMultiplication(v1, 2);
assertArrayEquals(new int[] { 2, 4, 6 }, v1);
int[] vector1 = { 1, -2, 3 };
Vector.scalarMultiplication(vector1, 2);
assertArrayEquals(new int[] { 2, -4, 6 }, vector1);
int[] v2 = { 7, 8, 15 };
Vector.scalarMultiplication(v2, -1);
assertArrayEquals(new int[] { -7, -8, -15 }, v2);
int[] vector2 = { 7, 8, 15 };
Vector.scalarMultiplication(vector2, -1);
assertArrayEquals(new int[] { -7, -8, -15 }, vector2);
int[] v3 = { 0,0,0};
Vector.scalarMultiplication(v3, 5);
assertArrayEquals(new int[] { 0, 0, 0 }, v3);
int[] v4 = {};
Vector.scalarMultiplication(v4, 2);
assertArrayEquals(new int[] { 0,0,0}, v4);
int[] v5 = null;
Vector.scalarMultiplication(v5, 5);
assertArrayEquals(null, v5);
int[] vector3 = { 0, 0, 0 };
Vector.scalarMultiplication(vector3, 5);
assertArrayEquals(new int[] { 0, 0, 0 }, vector3);
int[] vector4 = {};
Vector.scalarMultiplication(vector4, 2);
assertArrayEquals(new int[] {}, vector4);
int[] vector5 = null;
Vector.scalarMultiplication(vector5, 5);
assertArrayEquals(null, vector5);
}
@Test
@ -31,6 +33,7 @@ public class VectorTest {
int ergebnis1 = -2;
System.out.println("Erwartet: " + ergebnis1);
Vector.vectorProduct(new int[] { 3, 4 }, new int[] { 5, 6 });
int ergebnis2 = -1;
System.out.println("Erwartet: " + ergebnis2);
Vector.vectorProduct(new int[] { 0, 1 }, new int[] { 1, 0 });
@ -42,6 +45,7 @@ public class VectorTest {
int[] ergebnis1 = { -3, 6, -3 };
System.out.println("Erwartet: [" + ergebnis1[0] + ", " + ergebnis1[1] + ", " + ergebnis1[2] + "]");
Vector.vectorProduct(new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 });
int[] ergebnis2 = { -1, 0, 0 };
System.out.println("Erwartet: [" + ergebnis2[0] + ", " + ergebnis2[1] + ", " + ergebnis2[2] + "]");
Vector.vectorProduct(new int[] { 0, 0, 1 }, new int[] { 0, 1, 0 });
@ -91,20 +95,21 @@ public class VectorTest {
@Test
void testMatrixMultiplicationInvalidCases() {
int[][] non3DSquare = {
{ 1, 2 },
{ 3, 4 }
{ 1, 2, 3 },
{ 4, 5, 6 }
};
assertNull(Vector.matrixMultiplication(non3DSquare, 3));
int[][] non3DSquare1 = {
{ 1, 2 },
{ 3, 4 ,5}
{ 1, 2, 3 },
{ 3, 4, 5 },
{ 6, 7 }
};
assertNull(Vector.matrixMultiplication(non3DSquare1, 3));
assertNull(Vector.matrixMultiplication(non3DSquare1, 3));
int[][] non3DSquare2 = {
{ 1, 1, 1},
{ 2, 2, 2},
{ 3, 3, 3},
{ 4, 4, 4}
{ 1, 1, 1 },
{ 2, 2, 2 },
{ 3, 3, 3 },
{ 4, 4, 4 }
};
assertNull(Vector.matrixMultiplication(non3DSquare2, 3));