Exemple #1
0
        //public override bool Execute(ref QSData data)
        //{
        //  base.Execute(ref data);

        //  long sqrt = (long)Math.Floor(Math.Sqrt(m_QSData.N)) + 1;
        //  ControlHandler.SetPropertyValue(
        //    m_lblInfo,
        //    "Text",
        //    "Die Quadratwurzel aus " + m_QSData.N.ToString("D") + " ist " + Math.Sqrt(m_QSData.N).ToString("N") + " ≈ " + sqrt);
        //  int counter = 0;

        //  for (long i = data.From; i <= data.To; i++)
        //  {
        //    ControlHandler.AddRowDefintion(Grid, 1, GridUnitType.Auto);
        //    string a = StringFormat.FormatDoubleToIntString((sqrt + i)) + "²";
        //    string aminus1 = StringFormat.FormatDoubleToIntString((Math.Pow((sqrt + i), 2) - m_QSData.N));

        //    data.Add(new QuadraticPair(sqrt + i, ((long)Math.Pow((sqrt + i), 2) - m_QSData.N)));
        //    ControlHandler.ExecuteMethod(
        //      this,
        //      "AddToGrid",
        //      new object[] { Grid, a, counter + 1, 0, 0, 0 });
        //    ControlHandler.ExecuteMethod(
        //      this,
        //      "AddToGrid",
        //      new object[] { Grid, aminus1, counter + 1, 1, 0, 0 });

        //    counter++;
        //    Thread.Sleep(m_Delay);

        //  }

        //  return true;
        //}

        public override QSResult Execute(ref QSData data)
        {
            base.Execute(ref data);

            long sqrt = (long)Math.Ceiling(Math.Sqrt(m_QSData.N));

            String msg = String.Format(Primes.Resources.lang.WpfControls.Factorization.Factorization.qs_step1_squareroot, m_QSData.N, Math.Sqrt(m_QSData.N).ToString("N"), sqrt, data.From, data.To);

            ControlHandler.SetPropertyValue(m_lblInfo, "Text", msg);

            int counter = 2;

            for (long i = data.From; i <= data.To; i++)
            {
                int a = (int)i;
                int b = (int)(a * a - m_QSData.N);
                data.Add(new QuadraticPair(a, b));

                ControlHandler.AddColumnDefintion(Grid, 1, GridUnitType.Auto);
                base.AddToGrid(Grid, a.ToString() + "²", 0, counter);
                base.AddToGrid(Grid, b.ToString(), 1, counter);

                counter++;
                //Thread.Sleep(m_Delay);
            }

            return(QSResult.Ok);
        }