Найти ошибки в коде калькулятора, использующего интерфейс - C#

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

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

Помогите, пожалуйста. В общем-то, практически все реализовано
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
 
    public interface iArOp
    {
        double Sum();
        double Otr();
        double Prz();
        double Del();
    }
 
    public interface iSqrSqrt
    {
        double Sqr(double x);
        double Sqrt(double x);
    }

    class ArCalc : iArOp
    {
        double My_x, My_y;
 
        public double x
        {
            set { My_x = value; }
            get { return My_x; }
        }
 
        public double y
        {
            set { My_y = value; }
            get { return My_y; }
        }
 
        public ArCalc(double x, double y)
        {
            this.x = x;
            this.y = y;
        }
 
        // Реализуем методы интерфейса
        public virtual double Sum()
        {
            return x + y;
        }
 
        public double Otr()
        {
            return x - y;
        }
 
        public double Prz()
        {
            return x * y;
        }
 
        public double Del()
        {
            return x / y;
        }

        class Abs: iSqrSqrt
        {
 
        double My_x;
 
        public double x
        {
            set { My_x = value; }
            get { return My_x; }
        }
 
        public Abs(double x)
        {
            this.x = x;
        }
 
            public double Sqr(double x)
            {
                return x * x;
            }
 
            public double Sqrt(double x)
            {
                return Math.Sqrt(x);
            }
        }
 
        class Program
        {
            static void Main()
            {
                Console.WriteLine("Программа-калькулятор. Выберите действие:");
                Console.WriteLine("1) арифметика - +, -, /, *");
                Console.WriteLine("2) v- (корень), ^ (квадрат)");
 
                l1start:
                switch (Console.ReadLine())
                {
                    case "1":
                        
                        Console.Write("Введите 1-ый член: ");
                        double a = Convert.ToDouble(Console.ReadLine());
                        Console.Write("Введите 2-ой член: ");
                        double b = Convert.ToDouble(Console.ReadLine());
                        ArCalc obj1 = new ArCalc(x: a, y: b);
 
                        Console.Write("Выберите ар. действие: ");
                        switch (Console.ReadLine())
                        {
                            case "+":
                            Console.WriteLine("{0} + {1} = {2}", obj1.x, obj1.y, obj1.Sum());
                            break;
                            
                            case "-":
                            Console.WriteLine("{0} - {1} = {2}", obj1.x, obj1.y, obj1.Otr());
                            break;
 
                            case "/":
                            Console.WriteLine("{0} / {1} = {2}", obj1.x, obj1.y, obj1.Del());
                            break;
 
                            case "*":
                            Console.WriteLine("{0} * {1} = {2}", obj1.x, obj1.y, obj1.Prz());
                            break;
 
                        }
 
                        break;

                    case "2":
                        Console.Write("Введите число: ");
                        double c = Convert.ToDouble(Console.ReadLine());
                        Abs obj2 = new Abs(x: c);
                        
                        Console.Write("Выберите ар. действие: ");
                        switch (Console.ReadLine())
                        {
                            case "v-":
                                Console.WriteLine("Квадрат {0} = {1}", obj2.x, obj2.Sqr());
                                break;
 
                            case "^":
                                Console.WriteLine("Корень из {0} = {1}", obj2.x, obj2.Sqrt());
                                break;
 
                        }
                                             
                        break;
                }
                
                Console.Write("Ваши действия: 0 - выход, 1 - повторить расчет: ");
                switch(Console.ReadLine())
                {
                
                    case "0":
                        break;
 
                    case "1":
                        goto l1start;
                        break;
 
                }
            }
        }
 
    }
}
Не совсем понимаю почему выдает <Ни одна из перегрузок метода "Sqrt" и "Sqr" не принимает "0" аргументов>

Решение задачи: «Найти ошибки в коде калькулятора, использующего интерфейс»

textual
Листинг программы
 double Sqr(double x);
 double Sqrt(double x);

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


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

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

7   голосов , оценка 3.857 из 5