Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 // метод для нахожения косинуса угла между векторами
 public static double Cos(SecondVector l, SecondVector r)
 {
     return((l * r) / (l.GetLength() * r.GetLength()));
 }