Mohit Tomar Ответов: 1

Почему этот код выдает ошибку?


Мне не нужно много объяснять, так как я сам Новичок в C#. Однако я хотел вычислить площадь треугольника, используя его три стороны. И код выдает мне ошибку, как ожидалось CS0149 - имя метода.

Ниже приведен мой код:
class Q6_CalculateAreaOfTriangle
        {
            double sideA = double.Parse(Console.ReadLine());
            double sideB = double.Parse(Console.ReadLine());
            double sideC = double.Parse(Console.ReadLine());

            public static void FindAreaWith3Sides(double sideA, double sideB, double sideC)
            {
                double perimeter = (sideA + sideB + sideC) / 2;
                double pSubSidA = perimeter - sideA;
                double pSubSidB = perimeter - sideB;
                double pSubSidC = perimeter - sideC;
                double areaRaw = perimeter(pSubSidA * pSubSidB * pSubSidC); //Here is where it gives me problem. It asks to give a method. Why is it so??
                double area = Math.Sqrt(areaRaw);
            }


        }


Что я уже пробовал:

Ничего. Так как не знаю, с чего начать и что искать.

Однако я прошу Вас дать объяснение на очень простом для понимания английском языке, так как я не очень много освещал в C#, так что те вещи, о которых вы упоминаете, я, возможно, даже не слышал.

Заранее всем спасибо.

Herman<T>.Instance

Периметр-это переменная двойного типа, а не метод

1 Ответов

Рейтинг:
0

OriginalGriff

Если вы дважды щелкните на сообщении об ошибке, оно приведет вас к строке, в которой оно обнаружило ошибку. Посмотрите на сообщение об ошибке и на код:

Method Name Expected

double areaRaw = perimeter(pSubSidA * pSubSidB * pSubSidC);
Есть только один
И perimeter это double переменная:
double perimeter = (sideA + sideB + sideC) / 2;
не метод, поэтому он смотрит на ваш код, видит это:
double variable = aName(parameter list);
и ожидает, что aName будет методом. Итак, он жалуется: вы не можете "вызвать" переменную, это не имеет никакого смысла!

Я думаю тебе нужно вернуться к основам математики: Площадь треугольника с тремя сторонами - Формула Херона - математика Открытая ссылка[^]
Итак, вычислите p: (a + b + c)/2
Тогда площадь = корень(р * (р - а) * (р - б) * (р-с))
Вы вычислили p, это прекрасно, но вам нужен знак умножения:
double areaRaw = perimeter * (pSubSidA * pSubSidB * pSubSidC);