Example #1
0
        static double GetValueFromUser(string val)
        {
            string strValue;

            for (; ;)
            {
                Console.Write("Введите число (" + val + ") :");
                strValue = Console.ReadLine();
                if (strValue != String.Empty)
                {
                    double tempV = 0;

                    int valErr = 0;

                    try
                    {
                        valErr = QETools.ParseValue(strValue, ref tempV);
                        if (valErr == 0)
                        {
                            if (val == "a")
                            {
                                if (tempV == 0)
                                {
                                    ErrorMessage(val, 4);
                                }
                                else
                                {
                                    return(tempV);
                                }
                            }
                            else
                            {
                                return(tempV);
                            }
                        }
                        else
                        {
                            ErrorMessage(val, valErr);
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorMessage(ex.Message, 3);
                    }
                }
            }
        }
        public ActionResult Index(QEModel qEModel)
        {
            ViewBag.Message = string.Empty;
            ViewBag.Result  = string.Empty;
            ViewBag.LinMult = string.Empty;
            ViewBag.Error   = 0;
            if (qEModel.A == 0)
            {
                ViewBag.Error    = 1;
                ViewBag.Message += "Первый коэффициент не должен равняться 0.Повторите ввод.";
            }
            else if (qEModel.B == 0 && qEModel.C == 0)
            {
                ViewBag.Error    = 1;
                ViewBag.Message += "Уровнение не имеет смысла второй и третий коэффициент равны 0. Повторите ввод.";
            }
            else
            {
                qEModel.D        = QETools.GetDiscriminant(qEModel.A, qEModel.B, qEModel.C);
                ViewBag.Message += QETools.QEToString(qEModel.A, qEModel.B, qEModel.C) + "0";
                if (qEModel.D < 0)
                {
                    ViewBag.Result += String.Format("Квадратное уровнение не имеет корней. D={0} (D<0)", qEModel.D);
                }
                else if (qEModel.D == 0)
                {
                    qEModel.x1      = qEModel.x2 = QETools.GetX1(qEModel.D, qEModel.B, qEModel.A);
                    ViewBag.Result += String.Format("Уровнение имеет два равных корня x1=x2={0}", qEModel.x1);
                }
                else if (qEModel.D > 0)
                {
                    qEModel.x1      = QETools.GetX1(qEModel.D, qEModel.B, qEModel.A);
                    qEModel.x2      = QETools.GetX2(qEModel.D, qEModel.B, qEModel.A);
                    ViewBag.Result += String.Format("Уровнение имеет два корня x1={0}, x2={1}", qEModel.x1, qEModel.x2);
                }
                if (qEModel.D >= 0)
                {
                    ViewBag.LinMult += QETools.LinMult(qEModel.A, qEModel.B, qEModel.C, qEModel.x1, qEModel.x2);
                }
            }



            return(View(qEModel));
        }
Example #3
0
        private int GetValueFromUser(TextBox txb, string koef, ref double val)
        {
            int valErr = 0;
            int count  = 0;

            if (txb.Text != String.Empty)
            {
                try
                {
                    valErr = QETools.ParseValue(txb.Text, ref val);
                }
                catch (Exception ex)
                {
                    messageError      += "Произошла непредвиденная ошибка. Повторите ввод. \n";
                    txb.Text           = String.Empty;
                    this.ActiveControl = txb;
                    count = 1;
                }
                if (valErr != 0)
                {
                    messageError      += MessageError(koef, valErr);
                    txb.Text           = String.Empty;
                    this.ActiveControl = txb;
                    count = 1;
                }
            }
            else
            {
                count              = 1;
                messageError      += "Вы не ввели значение (" + koef + ") .Повторите ввод.\n";
                this.ActiveControl = txb;
                val = -1;
            }


            return(count);
        }
Example #4
0
 private void ThinkEquation()
 {
     richTextBox1.AppendText(QETools.QEToString(a, b, c) + "0\n");
     D = QETools.GetDiscriminant(a, b, c);
     if (D < 0)
     {
         richTextBox1.AppendText(string.Format("Квадратное уровнение не имеет корней. D={0} (D<0) \n", D));
     }
     else if (D == 0)
     {
         x1 = x2 = QETools.GetX1(D, b, a);
         richTextBox1.AppendText(string.Format("Уровнение имеет два равных корня x1=x2={0}\n", x1));
     }
     else if (D > 0)
     {
         x1 = QETools.GetX1(D, b, a);
         x2 = QETools.GetX2(D, b, a);
         richTextBox1.AppendText(string.Format("Уровнение имеет два корня x1={0}, x2={1}\n", x1, x2));
     }
     if (D >= 0)
     {
         richTextBox1.AppendText(QETools.LinMult(a, b, c, x1, x2) + "\n");
     }
 }
Example #5
0
        static void Main(string[] args)
        {
            double a;
            double b;
            double c;
            double D;
            double x1;
            double x2;

            for (; ;)
            {
                x1 = 0;
                x2 = 0;

                Console.OutputEncoding = System.Text.Encoding.UTF8;
                Console.WriteLine("ax²+bx+c=0");

                a = GetValueFromUser("a");
                b = GetValueFromUser("b");
                c = GetValueFromUser("c");
                if (b != 0 && c != 0)
                {
                    D = QETools.GetDiscriminant(a, b, c);
                    Console.WriteLine(QETools.QEToString(a, b, c) + "0");
                    if (D < 0)
                    {
                        Console.WriteLine("Квадратное уровнение не имеет корней. D={0} (D<0)", D);
                    }
                    else if (D == 0)
                    {
                        x1 = x2 = QETools.GetX1(D, b, a);
                        Console.WriteLine("Уровнение имеет два равных корня x1=x2={0}", x1);
                    }
                    else if (D > 0)
                    {
                        x1 = QETools.GetX1(D, b, a);
                        x2 = QETools.GetX2(D, b, a);
                        Console.WriteLine("Уровнение имеет два корня x1={0}, x2={1}", x1, x2);
                    }
                    if (D >= 0)
                    {
                        Console.WriteLine(QETools.LinMult(a, b, c, x1, x2));
                    }
                }
                else
                {
                    Console.WriteLine("Уровнение не имеет смысла b=0,c=0");
                }
                Console.Write("Решить ещё уровнение (y):");
                string nextRun = Console.ReadLine();
                if (nextRun == "y" || nextRun == "Y")
                {
                    Console.Clear();
                }
                else
                {
                    Console.WriteLine();
                    break;
                }
            }
        }