示例#1
0
        private void BtnEgal_Click(object sender, EventArgs e)
        {
            if (TextResultat.Text[0] == '-')
            {
                TextResultat.Text = 0 + TextResultat.Text;
            }

            nombres = TextResultat.Text.Split(new char[] { '+', '-', 'x', '/' }).ToList();

            for (int i = 0; i < nombres.Count; i++)
            {
                if (nombres[i][0] == '√')
                {
                    nombres[i] = Math.Sqrt(Convert.ToDouble(nombres[i].Substring(1))).ToString();
                    resultat   = Convert.ToDouble(nombres[i]);
                }
            }


            while (operateurs.Count != 0)
            {
                for (int i = 0; i < operateurs.Count; i++)
                {
                    if (operateurs[i] == "x")
                    {
                        resultat   = Convert.ToDouble(nombres[i]) * Convert.ToDouble(nombres[i + 1]);
                        nombres[i] = resultat.ToString();
                        nombres.RemoveAt(i + 1);
                        operateurs.RemoveAt(i);
                    }

                    else if (operateurs[i] == "/")
                    {
                        try
                        {
                            if (nombres[i + 1] == "0")
                            {
                                throw new Exception();
                            }
                            resultat = Convert.ToDouble(nombres[i]) / Convert.ToDouble(nombres[i + 1]);
                            nombres.RemoveAt(i);
                            operateurs.RemoveAt(i);
                            nombres[i] = resultat.ToString();
                        }

                        catch (Exception)
                        {
                            TextResultat.Clear();
                            nombres.Clear();
                            operateurs.Clear();
                            resultat = 0;
                            MessageBox.Show("Impossible de diviser par zéro !");
                        }
                    }
                }

                for (int i = 0; i < operateurs.Count; i++)
                {
                    if (operateurs[i] == "+")
                    {
                        resultat = Convert.ToDouble(nombres[i]) + Convert.ToDouble(nombres[i + 1]);
                        nombres.RemoveAt(i + 1);
                        operateurs.RemoveAt(i);
                        nombres[i] = resultat.ToString();
                    }
                    else if (operateurs[i] == "-")
                    {
                        resultat = Convert.ToDouble(nombres[i]) - Convert.ToDouble(nombres[i + 1]);
                        nombres.RemoveAt(i + 1);
                        operateurs.RemoveAt(i);
                        nombres[i] = resultat.ToString();
                    }
                }
            }
            TextResultat.Text = resultat.ToString();
        }
示例#2
0
 private void BtnClear_Click(object sender, EventArgs e)
 {
     TextResultat.Clear();
     nombres.Clear();
     operateurs.Clear();
 }