using System; namespace Lab4 { class vektor { double parse(string peremen) { Console.Write(peremen); string buf = ""; double y = 1, x = 0; Boolean check = false; do { try { check = false; buf = Console.ReadLine(); x = Double.Parse(buf); } catch (FormatException) { if (y > 5) { /* for (int t = 2; t >= 0; --t) { Console.ForegroundColor = ConsoleColor.Red; Console.Clear(); Console.WriteLine("Программа закроется через {0} с. ", t+1); System.Threading.Thread.Sleep(1000); }*/ Console.WriteLine("Убедитесь в правильности вводимых данных и перезапустите программу"); Environment.Exit(0); } Console.ForegroundColor = ConsoleColor.Red; Console.Beep(300, 600); Console.WriteLine("Введённые данные неверны "); Console.ForegroundColor = ConsoleColor.Gray; Console.Write(peremen); check = true; y++; Console.ForegroundColor = ConsoleColor.Gray; } } while (check ); return x; } double x1, x2, y1, y2, z1, z2, x, y, z; public double dlin; public vektor(string a) { Console.WriteLine("Введите координаты начальной точки вектора {0} ", a); x1 = parse("Введите x1 = "); y1 = parse("Введите y1 = "); z1 = parse("Введите z1 = "); Console.WriteLine("Введите координаты конечной точки вектора {0} ", a); x2 = parse("Введите x2 = "); y2 = parse("Введите y2 = "); z2 = parse("Введите z2 = "); x = x2 - x1; y = y2 - y1; z = z2 - z1; dlin = Math.Sqrt(x * x + y * y + z * z); } public vektor() { double x, y, z; } static public vektor operator +(vektor a, vektor b) { vektor r = new vektor(); r.x = a.x + b.x; r.y = a.y + b.y; r.z = a.z + b.z; return r; } static public vektor operator -(vektor a, vektor b) { vektor r = new vektor(); r.x = a.x - b.x; r.y = a.y - b.y; r.z = a.z - b.z; return r; } static public double cos(vektor a, vektor b) { if (a.dlin == 0 || b.dlin == 0) { return 1; } else { double cos = (a.x * b.x + a.y * b.y + a.z * b.z) / (a.dlin * b.dlin); return cos; } } static public double skpr(vektor a, vektor b) { if (a.dlin == 0 || b.dlin == 0) { return 0; } else { double skpr = a.dlin * b.dlin * vektor.cos(a, b); return skpr; } } static public void Writekord(vektor a) { Console.WriteLine("({0}, {1}, {2})", a.x, a.y, a.z); } } class Program { static void Main(string[] args) { vektor a = new vektor("a"); vektor b = new vektor("b"); double cos = vektor.cos(a, b); double skpr = vektor.skpr(a, b); Console.WriteLine("Координаты вектора суммы "); vektor.Writekord(a + b); Console.WriteLine("Координаты вектора разности "); vektor.Writekord(a - b); Console.WriteLine("Длина вектора a = {0:f3} \nДлина вектора b = {1:f3}", a.dlin, b.dlin); Console.WriteLine("Косинус между векторами a и b равен {0:f3}", cos); Console.WriteLine("Скалярное произведение векторов a и b равно {0:f3}", skpr); } } }