using System; namespace Vektorid { class Vektor { int x, y; public Vektor(int ux, int uy) { x = ux; y = uy; } public int xkoord() { return x; } public int ykoord() { return y; } public void tryki() { Console.WriteLine("({0}, {1})", x, y); } public double LeiaPikkus() { return Math.Sqrt(x * x + y * y); } public static Vektor operator +(Vektor v1, Vektor v2) { return new Vektor(v1.x + v2.xkoord(), v1.y + v2.ykoord()); } public static Vektor operator -(Vektor v1, Vektor v2) { return new Vektor(v1.x - v2.xkoord(), v1.y - v2.ykoord()); } public double Compare(Vektor v) { //Võrdlusoperaatorite puhul soovitav defineerida double yhepikkus = this.LeiaPikkus(); double teisepikkus = v.LeiaPikkus(); return yhepikkus - teisepikkus; } public override int GetHashCode() { return x*y; } public static bool operator ==(Vektor v1, Vektor v2) { return v1.Equals(v2); } public static bool operator !=(Vektor v1, Vektor v2) { return !v1.Equals(v2); } public override bool Equals(Object ob) { if (ob is Vektor && (this.Compare(ob as Vektor) == 0)) { return true; } return false; } public static bool operator <(Vektor v1, Vektor v2) { return v1.Compare(v2) < 0; } public static bool operator >(Vektor v1, Vektor v2) { return v1.Compare(v2) > 0; } } class Test { public static void Main(string[] arg) { Vektor v1 = new Vektor(2, 10); Vektor v2 = new Vektor(10, 2); Vektor v3 = v1 + v2; Vektor v4 = v1 - v2; v3.tryki(); v4.tryki(); if (v1 == v2) { Console.WriteLine("Vektorid on võrdse pikkusega."); } else if (v1 > v2) { Console.WriteLine("Vektor v1 on pikem kui v2"); } else { Console.WriteLine("Vektor v1 on lühem kui v2"); } } } }