C# Помогите Где в этой ситуаций находится число а где степень

0 голосов
15 просмотров

C# Помогите Где в этой ситуаций находится число а где степень


image

Информатика (20 баллов) | 15 просмотров
0

Во-первых: я надеялся, что человек, которому хватает ума в области синтаксиса C# спорить о целочисленном делении знает, куда вставлять код, чтобы он скомпилировался.

0

Во-вторых: https://ideone.com/SsdkN1 заходим сюда, смотрим на stdout.

0

В-третьих: заходим на официальную страничку с документацией функции Math.Pow (https://goo.gl/sDWiwP), смотрим на определение и на то, какие значения принимает функция.

0

Для ленивых: public static double Pow (double x, double y)

0

Ну, и наконец, в-четвёртых: https://ideone.com/C9YkWd.

0

1/3- это будет целочисленный тип, функция Math.Pow используется только с вещественными числами(1/3.0)

0

нужно так подавать

0

1.0/3 точнее

0

не так записал

0

1.0/3, 1/3.0 - неважно, всё равно приведёт к double, главное - чтобы один из типов был double, тогда int расширится до double и всё выражение приведётся к double.

Дан 1 ответ
0 голосов

Здесь используется функция Math.Pow, которая принимает два параметра: само значение и степень. Так как ты хочешь кубический корень, то степень будет выглядеть как дробь 1/3. Но C# устроен так, что 1 и 3 - это числа типа int. Ясное дело, что поделив int на int мы получим ничего другое, как int. А это значит, что: 1/3 = 0, так как мы не можем целочисленно поделить 1 на 3. Поэтому тебе нужно явно указать, что хотя бы одно из чисел в данной дроби типа double, то есть имеет десятичную запись (3.1415, 1.00001, 3.0). Вернёмся к определению функции:

Math.Pow(double x, double y), где x - значение, y - степень. x может быть любым типом - int, double и так далее; компилятор сам приведёт к нужному типу. А вот переменная y уже играет роль. В твоей программе:

x = m * Math.Tan(t) + Math.Abs(c * Math.Sin(t))

y = 1.0/3, либо 1/3.0, либо же 1.0/3.0, но ни в коем случае не 1/3 - у тебя всегда в ответе будет (значение)⁰ = 1

(5.6k баллов)