У меня тут проблема с формулой Герона для треугольника .
код :
public class Triangle extends Shape {
private double z;
Point point = new Point();
public double getZ() {
return z;
}
public void setZ(double z) {
this.z = z;
}
@Override
double getPerimetr() {
double p = point.getX() + point.getY() + z;
return p;
}
@Override
double getArea() {
double p = (point.getX() + point.getY() + z) / 2;
double s = Math.sqrt(p * (p - point.getX()) * (p - point.getY()) * (p - z));
return s;
}
}
При вызове метода getArea() в главном методе Main формула выводит на экран результат NaN . Класс треугольник проверяла, все три значения сторон в него записываются . Не могу понять что не так, формула вроде бы правильно, 5 раз перепроверила, а считать не хочет!
Java
Формула Герона ( что то не так)
ну, треугольник образуют не любые тройки чисел
только если x < y+z, y < x+z, z < x+y, x > 0, y > 0, z > 0, можно пользоваться формулой Герона
только если x < y+z, y < x+z, z < x+y, x > 0, y > 0, z > 0, можно пользоваться формулой Герона
Анатолий Ювченко
спасибо человек. выручил) все получилось)
Ruskа Guliаеv
Можно проще: x < p, y < p, z < p. Где p - тот самый полупериметр, который и так надо вычислять для формулы Герона.
Начни с того, что у тебя треугольник состоит из точки и какого-то З - так дела не делаются: либо точки, либо стороны, либо и то и другое вместе.
А твой НаН - это вычисление корня из отрицательного значения. Почему так получается, поможет узнать пошаговая отладка.
А твой НаН - это вычисление корня из отрицательного значения. Почему так получается, поможет узнать пошаговая отладка.
Анатолий Ювченко
даже если в double p просто вписать положительное число, к примеру 27, то все равно будет НаН.
Объект pt уже хранит в себе 2 точки а z это третья! так тчо там все ок, проблема в чем то другом
Объект pt уже хранит в себе 2 точки а z это третья! так тчо там все ок, проблема в чем то другом
перед тем как корень извлекать -- выведи на печать что именно ты туда засунуть пытаешься и убедись что это действительно число\
и соглашусь с Jurijus Zaksas
у тебя в классе треугольника всего одна точка и какая-то Зю малопонятная.
или у тебя все треугольники прямоугольные и все в первой четверти координатной плоскости? тогда нахрена зю нужно?
и соглашусь с Jurijus Zaksas
у тебя в классе треугольника всего одна точка и какая-то Зю малопонятная.
или у тебя все треугольники прямоугольные и все в первой четверти координатной плоскости? тогда нахрена зю нужно?
NaN (англ. Not-a-Number) — одно из особых состояний числа с плавающей запятой. Используется во многих математических библиотеках и математических сопроцессорах. Данное состояние может возникнуть в различных случаях, например, когда предыдущая математическая операция завершилась с неопределённым результатом, или если в ячейку памяти попало не удовлетворяющее условиям число.
К операциям, приводящим к появлению NaN в качестве ответа, относятся:
все математические операции, содержащие NaN в качестве одного из операндов;
деление нуля на нуль;
деление бесконечности на бесконечность;
умножение нуля на бесконечность;
сложение бесконечности с бесконечностью противоположного знака;
вычисление квадратного корня отрицательного числа;
логарифмирование отрицательного числа.
вероятно ошибка в формуле, проверяйте результат на всех этапах, путем вывода в клнсоль
К операциям, приводящим к появлению NaN в качестве ответа, относятся:
все математические операции, содержащие NaN в качестве одного из операндов;
деление нуля на нуль;
деление бесконечности на бесконечность;
умножение нуля на бесконечность;
сложение бесконечности с бесконечностью противоположного знака;
вычисление квадратного корня отрицательного числа;
логарифмирование отрицательного числа.
вероятно ошибка в формуле, проверяйте результат на всех этапах, путем вывода в клнсоль
Похожие вопросы
- вывод формулы герона? помагите
- Формула Exel Эксель СЧЁТ исходя из условий. Изменить формулу подсчёта количества рабочих дней с тысячными и целыми
- Excel Эксель. Формулы конца месяца не раздвигая столбец и не объединяя ячейки если в исходной ячейке формат общий или
- Помогите с формулой в Excel для выведения слова, исходя из заданного диапазона
- Помогите с формулой со скоростью растворения вещества в растворе
- Формула в Exel
- Герон Александрийский. . в чем талант этого забытого Ученого??
- Помогите составить ГЕНЕТИЧЕСКУЮ формулу окраса кошки
- Вики Чандок: «В «Формуле-1» слишком многое стали решать деньги» . Кто не согласен?
- Организаторы Гран-при России разыгрывают билеты на гонку «Формулы-1». Рисуем?