コード例 #1
0
        private void InsertForSum(int coef, int deg1, int deg2, int deg3)
        {
            Syllable newSyllable = new Syllable(coef, deg1, deg2, deg3);

            if (syllables.IsEmpty())
            {
                syllables.AddFirst(newSyllable);
            }
            else
            {
                Syllable previosSyllable = null;
                var      i = 0;
                foreach (var syllable in syllables)
                {
                    if (syllable.GetSumPowers() < newSyllable.GetSumPowers())
                    {
                        if (previosSyllable == null)
                        {
                            syllables.AddFirst(newSyllable);
                        }
                        else
                        {
                            syllables.AddByIndex(i, newSyllable);
                        }
                        break;
                    }
                    else if (syllable.GetSumPowers() >= newSyllable.GetSumPowers() && syllables.Count == i - 1)
                    {
                        syllables.AddLast(newSyllable);
                        break;
                    }
                    else
                    {
                        if (syllable.CheckForSum(newSyllable))
                        {
                            syllable.Coefficient += coef;
                            if (syllable.Coefficient == 0)
                            {
                                syllables.Remove(syllable); i--;
                            }
                            break;
                        }
                        else
                        {
                            if (newSyllable.CompareTo(syllable) < 0)
                            {
                                syllables.AddByIndex(i, newSyllable);
                                break;
                            }
                        }
                    }
                    i++;
                    previosSyllable = syllable;
                }
            }
        }
コード例 #2
0
        //делает из строки массив коэффицентов и степеней! списка полинома, а потом переделывает этот массив в другой, где в ячейке находится элемент класса Syllable
        private Syllable[] Convert(string str)
        {
            string[] array  = str.Split(' ');
            int[]    intArr = new int[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                intArr[i] = int.Parse(array[i]);
            }
            int c    = 0;
            var list = new Syllable[intArr.Length / 4];

            while (true)
            {
                if (c >= intArr.Length / 4)
                {
                    break;
                }
                list[c] = (new Syllable(intArr[c * 4], intArr[4 * c + 1], intArr[4 * c + 2], intArr[4 * c + 3]));
                c++;
            }
            return(list);
        }