Составить описание класса для вектора, заданного его координатами в трехмерном пространстве - 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();
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы