Ejemplo n.º 1
0
        public static double equatePolyXPoly(polyterm[] anArray, string[] variables)
        {
            string[,] variables2 = new string[variables.Length, 2];
            char[] sep = new char[] { '=', ' ' };
            int i = 0;
            foreach (string avar in variables)
            {
                string[] splitavar1 = avar.Split(sep, System.StringSplitOptions.RemoveEmptyEntries);
                foreach (string term in splitavar1)
                {
                    if (IsDigit(term) == false)
                    { variables2[i, 0] = term; variables2[i, 1] = ""; }
                    if (IsDigit(term) == true)
                    { variables2[i, 1] = term; break; }

                }
                i++;

            }

            if (testprint == true)
            {
                for (i = 0; i <= variables2.GetUpperBound(0); i++)
                {
                    for (int j = 0; j <= variables2.GetUpperBound(1); j++)
                    {
                        Console.Write("i[{0}]j[{1}]str[{2}]  ", i, j, variables2[i, j]);
                    }
                    Console.WriteLine();
                }
            }

            //check if input terms are present.

            for (i = 0; i <= variables2.GetUpperBound(0); i++)
            {
                for (int j = 0; j <= anArray.GetUpperBound(0); j++)
                {
                    if (variables2[i, 0] == anArray[j].x)
                    {

                        break;
                    }

                }
            }

            i = 0;
            double mult = 1;
            foreach (polyterm aterm in anArray)
            {
                for (int j = 0; j <= variables2.GetUpperBound(0); j++)
                {
                    if (aterm.x == variables2[j, 0] || aterm.x == " ")
                    {
                        mult *= aterm.equateterm(double.Parse(variables2[j, 1]));
                        if (testprint == true) { Console.WriteLine("mult [{0}] aterm [{1}]", mult,aterm); }
                    }
                }
            }
            return mult;
        }
Ejemplo n.º 2
0
        public static double equatePolyPlusPoly(polyterm[] anArray, string[] variables)
        {
            string[,] variables2 = new string [variables.Length, 2];
            char[] sep = new char[] { '=' , ' '};
            int i = 0;
            foreach (string avar in variables)
            {
                string[] splitavar1 = avar.Split(sep, System.StringSplitOptions.RemoveEmptyEntries);
                foreach (string term in splitavar1)
                {
                    if (IsDigit(term) == false)
                    { variables2[i, 0] = term; variables2[i, 1] = "0"; }
                    if (IsDigit(term) == true)
                    { variables2[i, 1] = term; break; }

                }
                i++;

            }

            //check if input terms are present.

            for (i = 0; i <= variables2.GetUpperBound(0); i++)
            {
                for (int j = 0; j <= anArray.GetUpperBound(0); j++)
                {
                    if (variables2[i, 0] == anArray[i].x)
                    {
                        break;
                    }
                    if (j == anArray.GetUpperBound(0)) { Console.WriteLine("Variable isn't present in Equation"); return 0; }
                }
            }

            i = 0;
            double sum = 0.0;
            foreach (polyterm aterm in anArray)
            {
                for (int j = 0; j <= variables2.GetUpperBound(0); j++)
                {
                    if (aterm.x == variables2[j, 0])
                    {
                        sum += aterm.equateterm(double.Parse(variables2[j, 1]));
                    }
                }
            }
            return sum;
        }