Exemple #1
0
        public static Vector Sum(Vector vector1, Vector vector2)
        {
            if (vector1.Length != vector2.Length)
            {
                throw new FormatException("Векторы имеют разную длину");
            }
            ArrayVector newVector = new ArrayVector(vector1.Length);

            for (int i = 0; i < vector1.Length; i++)
            {
                newVector[i] = (vector1[i] + vector2[i]);
            }
            return((Vector)newVector);
        }
Exemple #2
0
        public static float Scalar(ArrayVector vector1, ArrayVector vector2)
        {
            float scalar = 0;

            if (vector1.Length != vector2.Length)
            {
                throw new FormatException("Векторы имеют разную длину");
            }
            for (int i = 0; i < vector1.Length; i++)
            {
                scalar = scalar + vector1[i] * vector2[i];
            }
            return(scalar);
        }
Exemple #3
0
        public static double Scalar(ArrayVector vector1, ArrayVector vector2)
        {
            int scalar = 0;

            if (vector1.VectorLen != vector2.VectorLen)
            {
                throw new Exception();
            }
            for (int i = 0; i < vector1.VectorLen; i++)
            {
                scalar = scalar + vector1.GetElement(i) * vector2.GetElement(i);
            }
            return(scalar);
        }
Exemple #4
0
        public static ArrayVector Sum(ArrayVector vector1, ArrayVector vector2)
        {
            ArrayVector newVector;
            int         length = vector1.VectorLen;

            if (length > vector2.VectorLen)
            {
                newVector = new ArrayVector(vector1);
                length    = vector2.VectorLen;
            }
            else
            {
                newVector = new ArrayVector(vector2);
            }

            for (int i = 0; i < length; i++)
            {
                newVector.SetElement(vector1.GetElement(i) + vector2.GetElement(i), i);
            }
            return(newVector);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Программа предназначена для работы с векторами");
            List <Vector> vectors = new List <Vector>();
            bool          isExit  = false;

            while (!isExit)
            {
                try
                {
                    Console.WriteLine("1 - добавить ArrayVector");
                    Console.WriteLine("2 - добавить LinkedListVector");
                    Console.WriteLine("3 - вывести массив векторов");
                    Console.WriteLine("4 - выход");
                    int menu = ReadInt(1, 4);
                    switch (menu)
                    {
                    case 1:
                    {
                        Console.Write("Длина нового вектора: ");
                        int         length = ReadInt(1, int.MaxValue);
                        ArrayVector vector = new ArrayVector(length);
                        Console.Write("Координаты вектора (через пробел): ");
                        string[] str = Console.ReadLine().Split(' ');
                        for (int i = 0; i < str.Length; i++)
                        {
                            vector[i] = float.Parse(str[i]);
                        }
                        vectors.Add(vector);
                    }
                    break;

                    case 2:
                    {
                        Console.Write("Длина нового вектора: ");
                        int length = ReadInt(1, int.MaxValue);
                        LinkedListVector vector = new LinkedListVector(length);
                        Console.Write("Координаты вектора (через пробел): ");
                        string[] str = Console.ReadLine().Split(' ');
                        for (int i = 0; i < str.Length; i++)
                        {
                            vector[i] = float.Parse(str[i]);
                        }
                        vectors.Add(vector);
                    }
                    break;

                    case 3:
                    {
                        for (int i = 0; i < vectors.Count; i++)
                        {
                            Console.WriteLine(vectors[i].GetType().ToString().Split('.')[1] + ": " + vectors[i].ToString());
                        }
                    }
                    break;

                    case 4:
                    {
                        isExit = true;
                    }
                    break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Exemple #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("Программа предназначена для работы с векторами");
            bool             isExit1    = false;
            int              menu1      = 0;
            ArrayVector      vector1    = null;
            ArrayVector      vector2    = null;
            LinkedListVector linkedList = null;

            while (!isExit1)
            {
                Console.WriteLine("1 - создать векторы");
                Console.WriteLine("2 - создать список");
                Console.WriteLine("3 - работа с векторами");
                Console.WriteLine("4 - работа со списком");
                Console.WriteLine("5 - Выход");
                menu1 = ReadInt(1, 5);
                try
                {
                    switch (menu1)
                    {
                    case 1:
                    {
                        Console.Write("Длина 1 вектора: ");
                        int len = ReadInt(0, int.MaxValue);
                        vector1 = new ArrayVector(len);
                        Console.Write("Координаты вектора (через пробел): ");
                        string[] str = Console.ReadLine().Split(' ');
                        for (int i = 0; i < str.Length; i++)
                        {
                            vector1[i] = float.Parse(str[i]);
                        }

                        Console.Write("Длина 2 вектора: ");
                        len     = ReadInt(0, int.MaxValue);
                        vector2 = new ArrayVector(len);
                        Console.Write("Координаты вектора (через пробел): ");
                        str = Console.ReadLine().Split(' ');
                        for (int i = 0; i < str.Length; i++)
                        {
                            vector2[i] = float.Parse(str[i]);
                        }
                    }
                    break;

                    case 2:
                    {
                        Console.Write("Длина списка: ");
                        int len = ReadInt(0, int.MaxValue);
                        linkedList = new LinkedListVector(len);
                        Console.Write("Координаты вектора (через пробел): ");
                        string[] str = Console.ReadLine().Split(' ');
                        for (int i = 0; i < str.Length; i++)
                        {
                            linkedList[i] = float.Parse(str[i]);
                        }
                    }
                    break;

                    case 3:
                    {
                        if (vector1 == null)
                        {
                            Console.WriteLine("Вектора не созданы");
                        }
                        else
                        {
                            bool isExit2 = false;
                            int  menu2   = 0;
                            while (!isExit2)
                            {
                                Console.WriteLine("1 - сумма векторов");
                                Console.WriteLine("2 - скалярное произведение векторов");
                                Console.WriteLine("3 - модули векторов");
                                Console.WriteLine("4 - выход");
                                menu2 = ReadInt(1, 4);
                                switch (menu2)
                                {
                                case 1:
                                {
                                    ArrayVector tmp = Vectors.Sum(vector1, vector2);
                                    for (int i = 0; i < tmp.Length; i++)
                                    {
                                        Console.Write(tmp[i] + " ");
                                    }
                                    Console.WriteLine();
                                }
                                break;

                                case 2:
                                {
                                    float tmp = Vectors.Scalar(vector1, vector2);
                                    Console.WriteLine(tmp);
                                }
                                break;

                                case 3:
                                {
                                    float tmp1 = Vectors.GetNorm(vector1);
                                    float tmp2 = Vectors.GetNorm(vector2);
                                    Console.WriteLine(tmp1);
                                    Console.WriteLine(tmp2);
                                }
                                break;

                                case 4:
                                {
                                    isExit2 = true;
                                }
                                break;
                                }
                            }
                        }
                    }
                    break;

                    case 4:
                    {
                        if (linkedList == null)
                        {
                            Console.WriteLine("Список не создан");
                        }
                        else
                        {
                            bool isExit3 = false;
                            int  menu3   = 0;
                            while (!isExit3)
                            {
                                Console.WriteLine("1 - длина вектора");
                                Console.WriteLine("2 - кол-во элементов вектора");
                                Console.WriteLine("3 - редактировать элемент вектора");
                                Console.WriteLine("4 - вывести список");
                                Console.WriteLine("5 - выход");
                                menu3 = ReadInt(1, 5);
                                switch (menu3)
                                {
                                case 1:
                                {
                                    Console.WriteLine(linkedList.GetNorm());
                                }
                                break;

                                case 2:
                                {
                                    Console.WriteLine(linkedList.Count);
                                }
                                break;

                                case 3:
                                {
                                    int index;
                                    Console.Write("Индекс элемента: ");
                                    index = ReadInt(0, linkedList.Count - 1);
                                    Console.Write("Значение: ");
                                    linkedList[index] = float.Parse(Console.ReadLine());
                                }
                                break;

                                case 4:
                                {
                                    for (int i = 0; i < linkedList.Count; i++)
                                    {
                                        Console.Write(linkedList[i] + " ");
                                    }
                                    Console.WriteLine();
                                }
                                break;

                                case 5:
                                {
                                    isExit3 = true;
                                }
                                break;
                                }
                            }
                        }
                    }
                    break;

                    case 5:
                    {
                        isExit1 = true;
                    }
                    break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Exemple #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("Программа предназначена для работы с векторами");
            Console.Write("Кол-во координат вектора: ");
            int         CoordNum = Convert.ToInt16(Console.ReadLine());
            ArrayVector vector   = new ArrayVector(CoordNum);

            int value;

            Console.WriteLine("\nВвод значений координат вектора");
            for (int i = 0; i < vector.VectorLen; i++)
            {
                Console.Write("Координата №" + i + ": ");
                value = Convert.ToInt16(Console.ReadLine());
                vector.SetElement(value, i);
            }
            Console.Write("Координаты вектора:");
            for (int i = 0; i < vector.VectorLen; i++)
            {
                Console.Write(vector.GetElement(i) + "   ");
            }

            Console.WriteLine("\nМодуль вектора: " + vector.GetNorm());
            try
            {
                Console.WriteLine("Сумма положительных элементов с четными номерами: " + vector.SumPositivesFromChetIndex());
            }
            catch {
                Console.WriteLine("В векторе не найдены положительные элементы с четными номерами");
            }

            try
            {
                Console.WriteLine("Сумма элементов с четными номерами, меньших среднего значения модуля суммы: " + vector.SumLessFromNechetIndex());
            }
            catch {
                Console.WriteLine("В векторе не найдены элементы с четными номерами, меньших среднего значения модуля суммы");
            }

            try
            {
                Console.WriteLine("Произведение четных положительных элементов: " + vector.MulChet());
            }
            catch
            {
                Console.WriteLine("В векторе не найдено четных положительных элементов");
            }

            try
            {
                Console.WriteLine("Произведение нечетных элементов, не делящихся на 3: " + vector.MulNechet());
            }
            catch
            {
                Console.WriteLine("В векторе не найдено нечетных элементов, не делящихся на 3");
            }

            Console.Write("Элементы, отсортированные по возрастанию:");
            vector.SortUp(0, vector.VectorLen - 1);
            for (int i = 0; i < vector.VectorLen; i++)
            {
                Console.Write(vector.GetElement(i) + "   ");
            }

            Console.Write("\nЭлементы, отсортированные по убыванию:");
            vector.SortDown(0, vector.VectorLen - 1);
            for (int i = 0; i < vector.VectorLen; i++)
            {
                Console.Write(vector.GetElement(i) + "   ");
            }
            Console.ReadLine();
        }