Не работает math.pow, что я делаю не так?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lab3 { class Program { static double CalculateExpression(double a, double b, double c, double x, double n) { double numerator = math.Pow(math.abs(math.pow(math.tan(x),5)+a*b*c),6) / 75 - 43 * math.pow(x,x); double denominator = math.pow(math.sin(math.pi / 6 *n), 5); return numerator * denominator; } static void Main(string[] args) { Console.Write("Введите значение a: "); double a = double.Parse(Console.ReadLine()); Console.Write("Введите значение b: "); double b = double.Parse(Console.ReadLine()); Console.Write("Введите значение c: "); double c = double.Parse(Console.ReadLine()); Console.Write("Введите значение x: "); double x = double.Parse(Console.ReadLine()); Console.Write("Введите значение n: "); double n = double.Parse(Console.ReadLine()); double result = CalculateExpression(a, b, c, x, n); result = Math.Round(result, 2); Console.WriteLine($"Результат: {result}"); Console.ReadKey(); } } } |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lab3 { class Program { static double CalculateExpression(double a, double b, double c, double x, double n) { double numerator = math.Pow(math.abs(math.pow(math.tan(x),5)+a*b*c),6) / 75 - 43 * math.pow(x,x); double denominator = math.pow(math.sin(math.pi / 6 *n), 5); return numerator * denominator; } static void Main(string[] args) { Console.Write("Введите значение a: "); double a = double.Parse(Console.ReadLine()); Console.Write("Введите значение b: "); double b = double.Parse(Console.ReadLine()); Console.Write("Введите значение c: "); double c = double.Parse(Console.ReadLine()); Console.Write("Введите значение x: "); double x = double.Parse(Console.ReadLine()); Console.Write("Введите значение n: "); double n = double.Parse(Console.ReadLine()); double result = CalculateExpression(a, b, c, x, n); result = Math.Round(result, 2); Console.WriteLine($"Результат: {result}"); Console.ReadKey(); } } }
Пример который ввожу
Дополнительно:
Скобки в делителе в переменной numerator пропустили.
Еще, у вас имена переменных кривые. Зачем-то назвали два множителя "числитель" и "делитель". Причем дробь целиком считается в первой.
- согласен об именовании.. (о скобках и подавно )))
но тут мне бы было спокойнееdouble denominator = math.pow(math.sin(n * math.pi / 6), 5);
double denominator = math.pow(math.sin(n * math.pi / 6), 5);
да и вообще склонен тестировать по кусочкам, прежде сборки формул ))
- #, Да не, разделение-то нормальное. Имена плохие. Назвали бы их term1 и term2. И вообще первый надо разделить на numerator и denominator, в котором у вас и была ошибка.
- Wataru, не у меня ))
- #, Извиняюсь, не обратил внимание, что вы не автор вопроса. Пожалуйста, проигнорируйте мой предыдущий ответ вам.
- Wataru, норм. просто хотел подчеркнуть чисто уже интуитивное..
а так, не достаточно уверенности:
- документация
- скобки
- тесты по шагам
.. ))) - Спасибо, разобрался, но проблема оказалась в регистре. В итоге в visual stiduo все math и pow, pi, sin стал писать с большой буквы, всё сразу заработало :)
double term1 = Math.Pow(Math.Abs(Math.Pow(Math.Tan(x), 5) + a * b * c), 6) / 75 - 43 * Math.Pow(x, x); double term2 = Math.Pow(Math.Sin(Math.PI / 6 * n), 5); return term1 * term2;
double term1 = Math.Pow(Math.Abs(Math.Pow(Math.Tan(x), 5) + a * b * c), 6) / 75 - 43 * Math.Pow(x, x); double term2 = Math.Pow(Math.Sin(Math.PI / 6 * n), 5); return term1 * term2;
Мой вопрос можно считать закрытым
- olenajbjrfr, !!!..
double term1 = Math.Pow(Math.Abs(Math.Pow(Math.Tan(x), 5) + a * b * c), 6) / (75 - 43 * Math.Pow(x, x));
double term1 = Math.Pow(Math.Abs(Math.Pow(Math.Tan(x), 5) + a * b * c), 6) / (75 - 43 * Math.Pow(x, x));
скобки!!!!!!!
- olenajbjrfr,
проблема оказалась в регистре
а это вам сама студия должна была и показать, и подсказать... и даже компилятор командной строки..
- #, да, вы правы. Я настолько обрадовался что код хотя-бы заработал что не обратил внимание на привильность) Спасибо
- olenajbjrfr, не боги горшки обжигали (с) дерзайте и обрящите ;)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Если у вас возникают проблемы с функцией math.pow() в PHP, возможно, вы делаете что-то не так при её использовании. Давайте разберемся, как правильно использовать эту функцию.
Функция math.pow() в PHP используется для возведения числа в степень. Она принимает два аргумента: число, которое нужно возвести в степень, и саму степень. Например, math.pow(2, 3) вернет 8, так как 2 в третьей степени равно 8.
Вот пример правильного использования функции math.pow():
$num = 2; $power = 3; $result = math.pow($num, $power); echo $result; // Выведет 8
Если у вас по-прежнему не работает функция math.pow(), возможно, проблема в том, что вы используете неправильные аргументы или неправильный синтаксис. Убедитесь, что вы правильно указали название функции (math.pow, а не Math.pow или math_pow) и что оба аргумента являются числами.
Если вы все еще сталкиваетесь с проблемой, попробуйте использовать оператор ** для возведения числа в степень. Например:
$num = 2; $power = 3; $result = $num ** $power; echo $result; // Выведет 8
Таким образом, следуя этим рекомендациям, вы должны успешно использовать функцию math.pow() или оператор ** для возведения числа в степень в PHP.