Предмет: Информатика, автор: KlinVil

Дана следующая задача:Рассчитать значение у при заданном значении х: у = sin²x при х>0; 1-2sinx² в противном случае
Поставил к ней решение , для x>0 функция выполнятся правильно и находит верный ответ , но при x<0 при вычислении sin если в ответе он должен получится отрицательным то в программе он выдает положительный результат , из-за чего следующие операции выполняются неверно, что не так не могу понять?​

Приложения:

lozromanik: Приведи пример неправильного вывода и правильного ответа
KlinVil: Допустим ввожу число 5 , выдает ответ у=0.919536
KlinVil: Ответ верный
KlinVil: Но если введу -5 ответ должен быть 0.735296 но программа выдает ответ у=1.2647
KlinVil: Причем если в выражении у =1-(2*sin(pow(x,2)))
KlinVil: Поставить перед sin знак минус и отделить от умножения ( ) то ответ будет выходить верным
KlinVil: Но он не должен ведь работать таким образом что я должен ставить знак минуса перед sin

Ответы

Автор ответа: user8337928292
0

Ответ:

Попробуй через else if (x < 0), и еще так сделать:

double p = pow(x,2);

y = 1 - (2*sin(p));


KlinVil: К сожалению и это не помогло , помогает только если поставить знак минуса перед sin я решил проверить , и оставил лишь выражение sin(pow(x,2) результат при введении -5 должен быть положительным но в консоли мне выдает отрицательный вариант
Похожие вопросы
Предмет: Алгебра, автор: kaisar12