Java Code Programieren?
Schreiben Sie eine Klasse Vector mit folgenden Methoden: (Die Signaturen sind für die Abnahme verbindlich!!!)
public static void scalarMultiplication(int[ ] vector, int scalar)
Hierbei soll eine Skalarmultiplikation auf den übergebenen Vektor angewendet werden. Im Falle eines erneuten Aufruf des Vektors sollte sich dieser in seiner neuen Form befinden. Zeichnen Sie vor der Realisierung der Methode ein Aktivitätsdiagramm.
public static void vectorProduct(int[ ] vector1, int[ ] vector2)
Dieses soll das Kreuzprodukt zweier Vektoren berechnen und das Ergebnis auf der Konsole zurück-geben. Es soll hierbei im Stande sein, zwischen 2D-und 3D Vektoren zu unterscheiden und je nach Fall die richtige Rechnung durchzuführen.
public static double vectorLength(int[ ] vector)
Es soll der Betrag des übergebenen Vektors zurückgegeben werden. Überlegen Sie sich, warum hier double als Rückgabewert gewählt wurde.
public static int[][] matrixMultiplication(int[ ][ ] matrix, int scalar)
Dieses erhält eine 3x3 Matrix und ein Skalar als Parameter. Jeder Wert in der Matrix muss mit dem Skalar multipliziert werden. Anschließend wird die Matrix zurückgegeben. Im Falle, dass sich die übergebene Matrix nicht im 3x3 Format befindet, wird null zurückgegeben. Zeichnen Sie vor der Realisierung der Methode ein Aktivitätsdiagramm.
Wie kann ich diesen Code programmieren? Kann das mir jemand erklären?
1 Antwort
csharp
KopierenBearbeiten
Start
↓
Prüfe, ob vector ≠ null
↓
[Ja]
↓
Iteriere über alle Elemente von vector
↓
Multipliziere jedes Element mit scalar
↓
Setze das Ergebnis an der gleichen Position ein
↓
Ende
[Nein]
↓
Gib Fehlermeldung oder tue nichts
↓
Ende
Aktivitätsdiagramm für matrixMultiplication(int[][] matrix, int scalar)sql
KopierenBearbeiten
Start
↓
Prüfe, ob matrix ≠ null UND 3 Zeilen UND jede Zeile hat 3 Spalten
↓
[Ja]
↓
Erzeuge neue Matrix result[3][3]
↓
Iteriere über alle Zeilen und Spalten
↓
Multipliziere jedes Element mit scalar und speichere in result
↓
Gib result zurück
↓
Ende
[Nein]
↓
Gib null zurück
↓
Ende
Java-Klasse: java
KopierenBearbeiten
public class Vector {
// Skalarmultiplikation verändert den Vektor direkt
public static void scalarMultiplication(int[] vector, int scalar) {
if (vector == null) return;
for (int i = 0; i < vector.length; i++) {
vector[i] *= scalar;
}
}
// Kreuzprodukt zweier Vektoren (nur bei 3D sinnvoll definiert)
public static void vectorProduct(int[] vector1, int[] vector2) {
if (vector1.length == 3 && vector2.length == 3) {
int[] result = new int[3];
result[0] = vector1[1] * vector2[2] - vector1[2] * vector2[1];
result[1] = vector1[2] * vector2[0] - vector1[0] * vector2[2];
result[2] = vector1[0] * vector2[1] - vector1[1] * vector2[0];
System.out.println("Kreuzprodukt (3D): [" + result[0] + ", " + result[1] + ", " + result[2] + "]");
} else if (vector1.length == 2 && vector2.length == 2) {
// 2D-Kreuzprodukt = Skalarwert (Determinante der 2x2-Matrix)
int result = vector1[0] * vector2[1] - vector1[1] * vector2[0];
System.out.println("Kreuzprodukt (2D): " + result);
} else {
System.out.println("Fehler: Vektoren müssen beide 2D oder 3D sein.");
}
}
// Vektorlänge (Betrag)
public static double vectorLength(int[] vector) {
int sum = 0;
for (int val : vector) {
sum += val * val;
}
return Math.sqrt(sum);
}
// Skalarmultiplikation einer 3x3-Matrix
public static int[][] matrixMultiplication(int[][] matrix, int scalar) {
if (matrix == null || matrix.length != 3 || matrix[0].length != 3 ||
matrix[1].length != 3 || matrix[2].length != 3) {
return null;
}
int[][] result = new int[3][3];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
result[i][j] = matrix[i][j] * scalar;
}
}
return result;
}
}
Nächstes mal kannst du deine Hausaufgaben selber machen.