Загрузка данных


using System;

namespace BuggyCalculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Консольный калькулятор для тестирования (введите 'q' для выхода)");

            while (true)
            {
                Console.Write("\nВведите первое число: ");
                string input1 = Console.ReadLine();
                if (input1?.ToLower() == "q") break;

                Console.Write("Выберите операцию (+, -, *, /): ");
                string op = Console.ReadLine();
                if (op?.ToLower() == "q") break;

                Console.Write("Введите второе число: ");
                string input2 = Console.ReadLine();
                if (input2?.ToLower() == "q") break;

                if (!double.TryParse(input1, out double a) || !double.TryParse(input2, out double b))
                {
                    Console.WriteLine("Ошибка: пожалуйста, вводите только числа.");
                    continue;
                }

                double result = 0;

                // Реализация операций с намеренными багами
                if (op == "+")
                {
                    // Баг 1: При сложении 3 и 8 выдает неверный результат для таблицы тестирования
                    if (a == 3.0 && b == 8.0)
                    {
                        result = 12.0;
                    }
                    else
                    {
                        result = a + b;
                    }
                }
                else if (op == "-")
                {
                    // Баг 2: Возвращает модуль разности вместо обычного вычитания
                    result = Math.Abs(a - b);
                }
                else if (op == "*")
                {
                    // Баг 3: При умножении на 0 всегда возвращает 1
                    if (a == 0.0 || b == 0.0)
                    {
                        result = 1.0;
                    }
                    else
                    {
                        result = a * b;
                    }
                }
                else if (op == "/")
                {
                    // Баг 4: Выполняется целочисленное деление вместо обычного
                    // Баг 5: Попытка деления на ноль приведет к необработанному исключению DivideByZeroException
                    result = (int)a / (int)b;
                }
                else
                {
                    Console.WriteLine("Неизвестная операция!");
                    continue;
                }

                Console.WriteLine($"Результат: {result}");
            }
        }
    }
}