Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите найти ошибку в коде решения уравнения на Java

Валерия Черноусова Профи (622), на голосовании 1 год назад
Вот код:

public class HelloWorld {
public static void main(String args[]) {
double a=3.7;
double x=1.3;
double b=4.9;
double c=2.5;
double y=Math.sin(Math.sqrt(Math.exp(x)+a*Math.pow(x,2)+b*(Math.log(x)))/a*Math.pow(x,2)+c*x+13.7;
System.out.println("root is"+y+"");
}
}

Ошибка, которую выдает, хотя уже проверила все скобки вроде, глаза в мыле))

HelloWorld.java:7: error: ')' expected
double y=Math.sin(Math.sqrt(Math.exp(x)+a*Math.pow(x,2)+b*(Math.log(x)))/a*Math.pow(x,2)+c*x+13.7;
^
1 error
Дополнен 1 год назад
Методом тыка и наития была добавлена дополнительная скобка и все заработало)) Оставляю для таких же затупков, как я сама
public class HelloWorld {
public static void main(String args[]) {
double a=3.7;
double x=1.3;
double b=4.9;
double c=2.5;
double y=Math.sin(Math.sqrt(Math.exp(x)+a*Math.pow(x,2)+b*(Math.log(x))))/a*Math.pow(x,2)+c*x+13.7;
System.out.println("root is"+y+"");
}
}
Голосование за лучший ответ
Евгений Фомин Мудрец (14229) 1 год назад
Обычно форматируется код, чтобы не выискивать скобки. Например так:
 y = Math.sin(   
Math.sqrt(
Math.exp(x) + a * Math.pow(x,2) + b * Math.log(x)
)
) / a * Math.pow(x,2) + c * x + 13.7

Или же куски вложенности выносятся в отдельные переменные и потом комбинируются.

 sqrtArg = Math.exp(x) + a * Math.pow(x,2) + b * Math.log(x)
sinArg = Math.sqrt(sqrtArg)
y = Math.sin(sinArg) / a * Math.pow(x,2) + c * x + 13.7

Названия переменных офк получше можно выбрать.
Александр Дядюнов Гуру (3334) 1 год назад
Ошибка заключается в том, что программа содержит нераспознаваемые для Java операторы.
Кроме того, в вычислении значения переменной y отсутствует закрывающая скобка. А при выводе результата нужно исправить кавычки, чтобы они не помешали компиляции, Например:
 public class HelloWorld { 
public static void main(String[] args) {
double a = 3.7;
double x = 1.3;
double b = 4.9;
double c = 2.5;
double y = Math.sin(Math.sqrt(Math.exp(x) + a * Math.pow(x, 2) + b * (Math.log(x))) / (a * Math.pow(x, 2) + c * x + 13.7));
System.out.println("root is " + y);
}
}
Александр Искусственный Интеллект (301734) 1 год назад
тупой вопрос задам...
не покажешь ли какое выражение ты вычисляешь? может тут ещё больше скобок не хватает...
Похожие вопросы