Составить описание класса для вектора, заданного его координатами в трехмерном пространстве - C#
Формулировка задачи:
Разрабатываемый класс должен содержать следующие элементы: скрытые и
открытые поля, конструкторы без параметров и с параметрами (имена некоторых
полей должны совпадать с идентификаторами параметров), методы и свойства.
Методы и свойства должны обеспечивать непротиворечивый, полный минимальный и
удобный интерфейс класса.
В программе должна выполняться проверка всех разработанных элементов
класса, вывод состояния объекта.
Составить описание класса для вектора, заданного его координатами в трехмерном
пространстве. Обеспечить операции сложения и вычитания векторов с получением
нового вектора (суммы или разности), вычисления скалярного произведения двух
векторов, длины вектора.
Как ее переделать?
using System; class Vector { public Vector(double x, double y, double z) { X = x; Y = y; Z = z; } public double X; public double Y; public double Z; public double GetLength() { return Math.Sqrt(X * X + Y * Y + Z * Z); } public static Vector operator +(Vector l, Vector r) { return new Vector(l.X + r.X, l.Y + r.Y, l.Z + r.Z); } public static Vector operator -(Vector l, Vector r) { return new Vector(l.X - r.X, l.Y - r.Y, l.Z - r.Z); } public static double operator *(Vector l, Vector r) { return (l.X * r.X + l.Y * r.Y + l.Z * r.Z); } public static double Cos(Vector l, Vector r) { return (l * r) / (l.GetLength() * r.GetLength()); } public override string ToString() { return string.Format("({0},{1},{2})", X, Y, Z); } } class Program { static void Main(string[] args) { Vector v1 = new Vector(1, 2, 3); Vector v2 = new Vector(4, 5, 6); Vector v3 = v1 + v2; Vector v4 = v1 - v2; double m = v2 * v3; double c = Vector.Cos(v1, v2); Console.WriteLine(v1); Console.WriteLine(v2); Console.WriteLine(v3); Console.WriteLine(v4); Console.WriteLine(m); Console.WriteLine(c); Console.ReadKey(); } }
Решение задачи: «Составить описание класса для вектора, заданного его координатами в трехмерном пространстве»
textual
Листинг программы
using System; class Vector { private double X; private double Y; private double Z; // конструктор без параметров private Vector() {} //конструктор с параметрами public Vector(double x, double y, double z) { X = x; Y = y; Z = z; } //длина вектора public double GetLength() { return Math.Sqrt(X * X + Y * Y + Z * Z); } //операция сложения public static Vector operator +(Vector l, Vector r) { return new Vector(l.X + r.X, l.Y + r.Y, l.Z + r.Z); } //вычитание векторов public static Vector operator -(Vector l, Vector r) { return new Vector(l.X - r.X, l.Y - r.Y, l.Z - r.Z); } //вычисление скалярного произведения двух векторов public static double operator *(Vector l, Vector r) { return (l.X * r.X + l.Y * r.Y + l.Z * r.Z); } public static double Cos(Vector l, Vector r) { return (l * r) / (l.GetLength() * r.GetLength()); } public override string ToString() { return string.Format("({0},{1},{2})", X, Y, Z); } } class Program { static void Main(string[] args) { Vector v1 = new Vector(1, 2, 3); Vector v2 = new Vector(4, 5, 6); Vector v3 = v1 + v2; Vector v4 = v1 - v2; double m = v2 * v3; double c = Vector.Cos(v1, v2); Console.WriteLine(v1); Console.WriteLine(v2); Console.WriteLine(v3); Console.WriteLine(v4); Console.WriteLine(m); Console.WriteLine(c); Console.ReadKey(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д