|
|
||
|---|---|---|
| .. | ||
| readme.md | ||
readme.md
Vektor
🎓 Benotetes Assignment 🎓
📆 Fällig: 13.04.2025 📆
Paket
Gehen Sie in das Paket pr2.strukturierung.vektor.
Implementierung
Implementieren Sie eine Klasse Vektor mit deren Hilfe man dreidimensionale Vektoren erzeugen und die wichtigsten Vektor-Operationen durchführen kann. Die Komponenten des Vektors sollen reelle Zahlen sein, verwenden Sie daher zur Darstellung und Speicherung der Werte bitte eine Fließkommazahl mit doppelter Genauigkeit.
Die Objekte der Klasse Vektor sollen unveränderlich (immutable) sein.
Vektor soll die folgenden Aktionen unterstützen:
- Anlegen eines neuen Vektors und Befüllen des Vektors mit Daten
- Erzeugen eines Nullvektors (alle drei Komponenten [x,y,z] sind 0)
- Addieren zweier Vektoren
- Subtrahieren zweier Vektoren
- Auslesen einzelner Komponenten x,y und z
- Auslesen aller Komponenten auf einmal als Array
- Multiplikation des Vektors mit einem Skalar
- Skalarmultiplikation zweier Vektoren
- Kreuzprodukt zweier Vektoren
- Erzeugung des Einheitsvektors aus einem gegebenen Vektor (d.h. Vektor der Länge 1 mit derselben Richtung wie der ursprüngliche Vektor)
- Berechnung des Betrages (der Länge) eines Vektors
- Test, ob zwei Vektoren kollinear (parallel oder antiparallel) sind
- Bestimmen des eingeschlossenen Winkels zweier Vektoren
Bitte denken Sie daran auch eine Methode zu implementieren mit dem man testen kann, ob zwei Vektoren gleich sind (equals). Weiterhin ist es für die Programmentwicklung und den Test empfehlenswert eine Methode zur Konvertierung des Vektors in eine Zeichenkette zu implementieren (toString).
Vergessen Sie nicht, Ihre Methoden ausgiebig mit JavaDoc zu dokumentieren.
Test
Überprüfen Sie die Funktionalität Ihrer Implementierung mit entsprechenden JUnit-Tests und weise Sie mit diesen Tests nach, dass die implementierten Operationen richtig funktionieren. Verwenden Sie bitte mindestens die folgenden Testdaten:
Multiplikation mit einem Skalar
6\cdot\begin{pmatrix}1 \\ -5 \\ 3\end{pmatrix} = \begin{pmatrix}6 \\ -30 \\ 18\end{pmatrix}
-3\cdot\begin{pmatrix}1 \\ -5 \\ 3\end{pmatrix} = \begin{pmatrix}-3 \\ 15 \\ -9\end{pmatrix}
Skalarprodukt zweier Vektoren
\begin{pmatrix}1 \\ 2 \\ 3\end{pmatrix}\cdot\begin{pmatrix}-7 \\ 8 \\ 9\end{pmatrix} = 36
\begin{pmatrix}-5 \\ 9 \\ 7\end{pmatrix}\cdot\begin{pmatrix}10 \\ 3 \\ 8\end{pmatrix} = 33
Addition und Subtraktion
\begin{pmatrix}4 \\ 0 \\ 8\end{pmatrix}{+}\begin{pmatrix}-1 \\ 4 \\ 7\end{pmatrix} = \begin{pmatrix}3 \\ 4 \\ 15\end{pmatrix}
\begin{pmatrix}4 \\ 0 \\ 8\end{pmatrix}{-}\begin{pmatrix}-1 \\ 4 \\ 7\end{pmatrix} = \begin{pmatrix}5 \\ -4 \\ 1\end{pmatrix}
\begin{pmatrix}4 \\ 0 \\ 8\end{pmatrix}{+}\begin{pmatrix}-1 \\ 4 \\ 7\end{pmatrix} = \begin{pmatrix}-1 \\ 4 \\ 7\end{pmatrix}{+}\begin{pmatrix}4 \\ 0 \\ 8\end{pmatrix}
Kreuzprodukt
\begin{pmatrix}1 \\ 2 \\ 3\end{pmatrix}\times\begin{pmatrix}-7 \\ 8 \\ 9\end{pmatrix} = \begin{pmatrix}-6 \\ -30 \\ 22\end{pmatrix}
\begin{pmatrix}1 \\ 2 \\ 8\end{pmatrix}\times\begin{pmatrix}4 \\ 3 \\ 5\end{pmatrix} = \begin{pmatrix}-14 \\ 27 \\ -5\end{pmatrix}
Betrag
\left|\begin{pmatrix}1 \\ 1 \\ 1\end{pmatrix}\right| = \sqrt{3}
\left|\begin{pmatrix}5 \\ 4 \\ 3\end{pmatrix}\right| = \sqrt{50}
Kollinearität und Winkel
\begin{pmatrix}4 \\ 5 \\ 7\end{pmatrix} und \begin{pmatrix}16 \\ 20 \\ 28\end{pmatrix} sind kollinear.
\begin{pmatrix}4 \\ 5 \\ 7\end{pmatrix} und \begin{pmatrix}16 \\ 20 \\ 21\end{pmatrix} sind nicht kollinear.
Der Winkel zwischen \begin{pmatrix}3 \\ -1 \\ 2\end{pmatrix} und \begin{pmatrix}1 \\ 2 \\ 4\end{pmatrix} beträgt 58,3^{\circ}.
Komplexere Rechnungen
\left[
\begin{pmatrix}-1 \\ 5 \\ -2\end{pmatrix}\times\begin{pmatrix}2 \\ 1 \\ 2\end{pmatrix}
\right]
\cdot\begin{pmatrix}2 \\ 0 \\ 5\end{pmatrix} = -31
Abgabe
Alle Abgaben für die Vorlesung erfolgen über git.
Hierzu gehen Sie wie folgt vor:
- Öffnen Sie eine Kommandozeile (Terminal).
- Gehen Sie in Ihr Working Directory.
- Rufen Sie mit
bin/submit.shdas Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren. - Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken Sie Ihre Änderungen in
gitauf der Kommandozeile ein (comitten), d.h. mitgit addundgit commit. Verwenden Sie nicht Eclipse für diesen Schritt. - Rufen Sie mit
bin/submit.sherneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.