C# :: Aufgabe #314 :: Lösung #1
1 Lösung

#314
Mathematische Vektoroperationen
Anfänger - C#
von thunderbird
- 28.04.2020 um 21:51 Uhr
Erstellen Sie ein Programm/ eine Funktion, mit der Vektorberechnungen durchgeführt werden können.
"Vektor" soll eine eigens erstellte Klasse sein, die aus 3 Fließkommazahlen bestehen.
Zudem beinhaltet die Klasse "Vektor" eine Methode zur Skalarmultiplikation, Addition, Subtraktion, Division und um das Kreuzprodukt zu berrechnen.
Erstellen Sie zur Darstellung eine Ausgabemethode.
Hinweis:
- Anstatt neue Methoden zu erstellen, können (sofern möglich) bereits vorhandene überladen werden.
- Mathematische Rechenregeln unter: https://de.wikipedia.org/wiki/Vektor
"Vektor" soll eine eigens erstellte Klasse sein, die aus 3 Fließkommazahlen bestehen.
Zudem beinhaltet die Klasse "Vektor" eine Methode zur Skalarmultiplikation, Addition, Subtraktion, Division und um das Kreuzprodukt zu berrechnen.
Erstellen Sie zur Darstellung eine Ausgabemethode.
Hinweis:
- Anstatt neue Methoden zu erstellen, können (sofern möglich) bereits vorhandene überladen werden.
- Mathematische Rechenregeln unter: https://de.wikipedia.org/wiki/Vektor
#1

von JKooP (18090 Punkte)
- 29.04.2020 um 16:54 Uhr
NET Core 3.x
C#-Code

using System; namespace Vektoren { class Program { static void Main(string[] args) { var v1 = new Vektor(3, 4, 5); var v2 = new Vektor(7, 5, 1); var summe = v1 + v2; Console.WriteLine(summe); var differenz = v2 - v1; Console.WriteLine(differenz); var skalar = 3 * v1; Console.WriteLine(skalar); var produkt = v1 * v2; Console.WriteLine(produkt); var kreuzprodukt = v1 / v2; Console.WriteLine(kreuzprodukt); var vergleich = v1.Equals(v2); Console.WriteLine(vergleich); } } class Vektor { public Vektor(double x1, double x2, double x3) => (X1, X2, X3) = (x1, x2, x3); public (double, double, double) Display => (X1, X2, X3); private double X1 { get; } private double X2 { get; } private double X3 { get; } public override bool Equals(object obj) => obj is Vektor vektor && Display.Equals(vektor.Display) && X1 == vektor.X1 && X2 == vektor.X2 && X3 == vektor.X3; public override int GetHashCode() => HashCode.Combine(Display, X1, X2, X3); public static Vektor operator +(Vektor v1, Vektor v2) => new Vektor(v1.X1 + v2.X1, v1.X2 + v2.X2, v1.X3 + v2.X3); public static Vektor operator -(Vektor v1, Vektor v2) => new Vektor(v1.X1 - v2.X1, v1.X2 - v2.X2, v1.X3 - v2.X3); public static Vektor operator *(double skalar, Vektor v) => new Vektor(v.X1 * skalar, v.X2 * skalar, v.X3 * skalar); public static Vektor operator /(Vektor v1, Vektor v2) => new Vektor(v1.X2 * v2.X3 - v1.X3 * v2.X2, v1.X3 * v2.X1 - v1.X1 * v2.X3, v1.X1 * v2.X2 - v1.X2 * v2.X1); public static double operator *(Vektor v1, Vektor v2) => v1.X1 * v2.X1 + v1.X2 * v2.X2 + v1.X3 * v2.X3; public static bool operator ==(Vektor v1, Vektor v2) => v1.X1 == v2.X1 && v1.X2 == v2.X2 && v1.X3 == v2.X3; public static bool operator !=(Vektor v1, Vektor v2) => v1.X1 != v2.X1 || v1.X2 != v2.X2 || v1.X3 != v2.X3; public static implicit operator string(Vektor v) => v.Display.ToString(); } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1