Запретить деление на 0 - C#

Узнай цену своей работы

Формулировка задачи:

Как сделать чтобы во время деления на 0 выбивало: "на 0 делить нельзя" сейчас 10/0= 10 почему так?
namespace Coursework
{
    class Parser
    {
        public static double Eval(char[] expr)
        {
            return parseSummands(expr, 0);
        }
 
        private static double parseSummands(char[] expr, int index)
        {
            double x = parseFactors(expr, ref index);
            while (true)
            {
                char op = expr[index];
                if (op != '+' && op != '-')
                    return x;
                index++;
                double y = parseFactors(expr, ref index);
                if (op == '+')
                    x += y;
                else
                    x -= y;
            }
        }
        private static double parseFactors(char[] expr, ref int index)
        {
            double x = trigFunctions(expr, ref index);
            while (true)
            {
                char op = expr[index];
                if (op != '/' && op != '*' && op != '^')
                    return x;
                index++;
                double y = trigFunctions(expr, ref index);
                if (op == '/' && y != 0)
                    x /= y;
                else if (op == '*')
                    x *= y;
                else if (op == '^')
                    x = Math.Pow(x, y);
            }
        }
 
        private static double trigFunctions (char[] expr, ref int index)
        {
            if (expr[index] >= 48 && expr[index] <= 57 || expr[index] == 46 || expr[index] == 45)
                return GetDouble(expr, ref index);
            else
            {
                char op = expr[index];
                if (op != 'c' && op != 't' && op != 's')
                    return GetDouble(expr, ref index);
                index += 4;
                double x = GetDouble(expr, ref index);
                if (index + 1 != expr.Length) index++;
                if (op == 'c')
                    return Math.Cos(x);
                if (op == 't')
                    return Math.Tan(x);
                else
                    return Math.Sin(x);
 
            }
        }
        private static double GetDouble(char[] expr, ref int index)
        {
            string dbl = "";
            while (((int)expr[index] >= 48 && (int)expr[index] <= 57 || (int)expr[index] == 46))
            {
                dbl += expr[index].ToString();
                index++;
                if (index == expr.Length)
                {
                    index--;
                    break;
                }
            }
            return double.Parse(dbl);
        }
    }
}

Решение задачи: «Запретить деление на 0»

textual
Листинг программы
        static void MagicDouble()
        {
            double a = 0.3, b = 0.1, c = 0.2;
            Console.WriteLine(a == (b + c));
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5