static public void FindMax(EquationArray array, out Equation max) //Поиск уравнения с максимальным по модулю корнем { int mIdx = 0; while (mIdx < array.Length && !array[mIdx].HaveRoots) { mIdx++; //Поиск } if (mIdx == array.Length) { Console.WriteLine("В массиве нет уравнений, имеющих корни, возвращено первое уравнение"); max = null; } else { max = array[mIdx]; for (int i = mIdx + 1; i < array.Length; i++) { if (array[i].HaveRoots && array[i] > max) { max = array[i]; } } } }
static void EquationArrayExample() { Console.WriteLine("EquationArrayExample демонстрирует класс EquationArray (массив уравнений) и его методы"); Console.WriteLine("Первый объект генерируется автоматически, второй заполняется вручную"); EquationArray eqa1 = new EquationArray(5, inputManually: false); //Заполнение ДСЧ EquationArray eqa2 = new EquationArray(3, inputManually: true); //Заполнение вручную Console.WriteLine("eqa1 сгенерирован ДСЧ, вывод с помощью индексации: "); for (int i = 0; i < eqa1.Length; i++) { Console.WriteLine(eqa1[i].ToString()); } Console.WriteLine("\nВывод eqa2"); eqa2.Show(); eqa2.Max(out Equation max1); //FindMax(eqa1, out Equation max2); Console.WriteLine("В eqa2 максимальным по модулю корнем обладает уравнение:"); Console.WriteLine(max1.ToString()); }