Реализовать класс векторов, переопределив операции сложения, вычитания, умножения - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д