Не работает math.pow, что я делаю не так?

Ссылка скопирована
1 ответ
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(); } } }

Пример который ввожу

Не работает math.pow, что я делаю не так?

Дополнительно:

Скобки в делителе в переменной 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, не боги горшки обжигали (с) дерзайте и обрящите ;)
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Если у вас возникают проблемы с функцией 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

$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

$num = 2; $power = 3; $result = $num ** $power; echo $result; // Выведет 8

Таким образом, следуя этим рекомендациям, вы должны успешно использовать функцию math.pow() или оператор ** для возведения числа в степень в PHP.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно