Реализовать класс векторов, переопределив операции сложения, вычитания, умножения - C#

Узнай цену своей работы

Формулировка задачи:

Реализовать класс векторов, переопределив операции сложения, вычитания, умножения векторов и операторы равенства/неравенства. Учесть операции, где один из операндов – вещественное или целое число. Генерировать исключение, в случае не совпадения размерности векторов при выполнении операций...
Using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace labwork3
{
    class Vector
    {
        int[] vect;
 
        public Vector() 
        { 
            vect = null; 
        }
        public Vector(int[] v) 
        { 
            vect = v; 
        }
 
        public Vector(int n)
        { 
            vect = new int[n];
            for (int i = 0; i < n; i++) vect[i] = i;
        }
 
        public static bool operator ==(Vector op1, Vector op2)
        {
            if (op1.vect == null || op2.vect == null)
            {
                Console.WriteLine("Один или оба вектора не существует.");
                return false;
            }
            if (op1.vect.Length == op2.vect.Length) return true;
            return false;
        }
        public static bool operator !=(Vector op1, Vector op2)
        {
            if (op1.vect == null || op2.vect == null)
            {
                Console.WriteLine("Один или оба вектора не существует.");
                return false;
            }
            if (op1.vect.Length != op2.vect.Length) return true;
            return false;
        }
        public static Vector operator +(Vector op1, Vector op2)
        {
            try
            {
                if (op1 != op2) throw new IndexOutOfRangeException();
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("Длины векторов не равны, сложение невозможно.");
            }
 
            Vector op = new Vector(op1.vect.Length);
            for (int i = 0; i < op1.vect.Length; i++)
                op.vect[i] = op1.vect[i] + op2.vect[i];
 
                return op;
        }
        public static Vector operator -(Vector op1, Vector op2)
        {
            try
            {
                if (op1 != op2) throw new IndexOutOfRangeException();
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("Длины векторов не равны, вычитание невозможно.");
            }
 
            Vector op = new Vector(op1.vect.Length);
            for (int i = 0; i < op1.vect.Length; i++)
                op.vect[i] = op1.vect[i] - op2.vect[i];
 
            return op;
        }
        public static int operator *(Vector op1, Vector op2)
        {
            try
            {
                if (op1 != op2) throw new IndexOutOfRangeException();
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine("Длины векторов не равны, умножение невозможно.");
            }
 
            int op=0;
            for (int i = 0; i < op1.vect.Length; i++)
                op += op1.vect[i] * op2.vect[i];
 
            return op;
        }
        public void show() 
        {
            for (int i = 0; i < vect.Length; i++) Console.Write(vect[i] + "\t");
            Console.WriteLine();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            int k=6;
            Vector ob1 = new Vector(k), ob2 = new Vector(k), ob3;
            ob1.show();
            ob2.show();
            ob3 = ob1 + ob2;
            ob3.show();
            ob3 = ob1 - ob2;
            ob3.show();
            ob3 = ob1 * ob2;--------Ошибка  3   Неявное преобразование типа "int" в "labwork3.Vector" невозможно    C:\Users\User\Desktop\Гетерогенные программные платформы\Лабораторная 3\labwork3\labwork3\Program.cs    117 19  labwork3
 
            ob3.show();
            Console.ReadLine();
            Console.ReadKey(true);
        }
    }
}

Решение задачи: «Реализовать класс векторов, переопределив операции сложения, вычитания, умножения»

textual
Листинг программы
ob3 = ob1 * ob2;
-->
int product = ob1 * ob2;

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


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

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

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