예제 #1
0
        private bool update()
        {
            resultaatWaarden.Add(shaveOffWholeNumbers(ref tussenResultaat));
            if (checkWaarden.Contains(tussenResultaat.Value))
            {
                return(true);
            }

            checkWaarden.Add(tussenResultaat.Value);
            tussenResultaat.TakeReciprocal();
            moveRootToTeller(ref tussenResultaat);
            return(false);
        }
예제 #2
0
        public void Generate(int wortel)
        {
            checkWaarden.Clear();
            resultaatWaarden.Clear();

            this.wortel     = wortel;
            tussenResultaat = initBreukOpWortelVan(wortel);

            eersteResultaatWaarde = shaveOffWholeNumbers(ref tussenResultaat);
            checkWaarden.Add(tussenResultaat.Value);
            tussenResultaat.TakeReciprocal();
            moveRootToTeller(ref tussenResultaat);

            bool stop = false;

            while (!stop)
            {
                stop = update();
            }

            Period = resultaatWaarden.Count;

            Coefficients    = new int[resultaatWaarden.Count + 1];
            Coefficients[0] = eersteResultaatWaarde;
            for (int i = 1; i < Coefficients.Length; i++)
            {
                Coefficients[i] = resultaatWaarden[i - 1];
            }

            ShortNotation = "[" + eersteResultaatWaarde + "(";
            for (int i = 0; i < resultaatWaarden.Count - 1; i++)
            {
                ShortNotation += resultaatWaarden[i] + ", ";
            }
            ShortNotation += resultaatWaarden[resultaatWaarden.Count - 1] + ")]";
            LongNotation   = "sqrt(" + this.wortel + ") = " + this.ShortNotation + "  => Period = " + this.Period;
        }