static void Main(string[] args) { // смена цвета в консоли Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.White; Console.Clear(); // переменные класса (для вектора и меню) int p; double x1 = 0, x2 = 0, y1 = 0, y2 = 0, z1 = 0, z2 = 0; // ввод первого вектора с консоли с проверкой на введенное значение Console.WriteLine("Первый вектор.\r\n Введите координаты."); x1 = Input("x = "); y1 = Input("y = "); z1 = Input("z = "); // ввод второго вектора с консоли с проверкой на введенное значение Console.WriteLine("\r\nВторой вектор.\r\n Введите координаты."); x2 = Input("x = "); y2 = Input("y = "); z2 = Input("z = "); Console.Clear(); // отчиска консоли // вывод на экран введеных векторов Vector vector1 = new Vector(x1, y1, z1); Console.WriteLine("Вектор 1: " + vector1); Vector vector2 = new Vector(x2, y2, z2); Console.WriteLine("Вектор 2: " + vector2); // меню Console.WriteLine("\nМеню:"); Console.WriteLine("1. Сумма векторов"); Console.WriteLine("2. Вычитание векторов"); Console.WriteLine("3. Вычисление скалярного произведения двух векторов"); Console.WriteLine("4. Косинус угла между векторами"); Console.WriteLine("5. Длина вектора 1"); Console.WriteLine("6. Длина вектора 2"); Console.WriteLine("Нажмите любую другую кнопку для выхода"); Console.Write("\nВыберите: "); do // исполнять пока вводятся разрешенные значение меню { p = int.Parse(Console.ReadLine()); // выбор пункта switch (p) // оператор выбора { case 1: // вывод суммы векторов с созданием нового вектора Vector vSum = vector1 + vector2; Console.WriteLine("Сумма: " + vSum); Console.Write("\nВыберите: "); break; case 2: // вывод разности векторов Vector v4 = vector1 - vector2; Console.WriteLine("Разность: " + v4); Console.Write("\nВыберите: "); break; case 3: // вывод скалярного произведения векторов SecondVector scar = new SecondVector(x1, y1, z1); SecondVector scar2 = new SecondVector(x2, y2, z2); double m = scar * scar2; Console.WriteLine("Скалярное произведение: " + m); Console.Write("\nВыберите: "); break; case 4: // вывод косинуса угла между векторами SecondVector cos = new SecondVector(x1, y1, z1); SecondVector cos2 = new SecondVector(x2, y2, z2); double c = SecondVector.Cos(cos, cos2); Console.WriteLine("Косинус: " + c); Console.Write("\nВыберите: "); break; case 5: // вывод длины вектора 1 SecondVector length = new SecondVector(x1, y1, z1); Console.WriteLine("Длина первого вектора: " + length.GetLength()); Console.Write("\nВыберите: "); break; case 6: // вывод длины вектора 2 SecondVector length2 = new SecondVector(x2, y2, z2); Console.WriteLine("Длина второго вектора: " + length2.GetLength()); Console.Write("\nВыберите: "); break; default: // если введено неверное значение, вывод собщения Console.WriteLine("Вы ввели неверный пункт меню"); break; } } while (p >= 1 && p <= 6); }
// метод для нахожения косинуса угла между векторами public static double Cos(SecondVector l, SecondVector r) { return((l * r) / (l.GetLength() * r.GetLength())); }