2015-09-21 5 views
0

Надеюсь, вы сможете помочь мне с этим. Я пытаюсь найти область пятиугольника. Я знаю формулу, однако мой ответ не соответствует правильному ответу.JAVA Формула для расчета площади пентагона

Я должен иметь возможность получить область, используя math.sqrt, но у меня есть грубое время, упрощающее формулу и сочетающее ее таким образом, чтобы выход был правильным.

Вот мой код

System.out.println("What shape do you need to know the area of?\n" + 
    "1: Determine the Area of a Square?\n" + 
    "2: Determine the Area of a Circle?\n" + 
    "3: Determine the Area of a Ellipse?\n" + 
    "4: Determine the Area of a Pentagon? \n" + 
    "5: Exit\n"  
    ); 

    Scanner reader = new Scanner(System.in); 
    System.out.println("Selection: "); 
    int input = reader.nextInt(); 
    reader.nextLine(); 

    Scanner scan = new Scanner(System.in); 

    } 
if (input == 4){ 
     System.out.println("What is a length of 1 side of the Pentagon? "); 
     int n = scan.nextInt(); 
    // Calculate the area based on formula 
     double area = (n * Math.pow(n, 2))/(4 * Math.tan(Math.PI/n)); 
    //Print result 
     System.out.println (" Area of regular pentagon is " + area); 
    } 
+0

Ну, какова эталонная формула, которую вы используете? – OldProgrammer

+0

Приведите пример ... для некоторого 'n', что вы ожидаете и чего вы на самом деле получаете? Глядя на ваш код, можно предположить, что вы смешиваете целочисленную и float/double арифметику. Получите ввод как int, затем преобразуйте его в double; используйте double в вычислении. –

+0

глядя на формулу, кажется, вы используете n для количества сторон и длины стороны. Я предполагаю, что первое и последнее появление n должно быть фактически 5. – Henry

ответ

0

Это пять раз размер одного из треугольников, образующих пятиугольник.

Если возникла проблема выяснить, площадь этого треугольника, помните, что 1/2 площади параллелограмма, состоящего из двух из этих треугольников слипшихся (с равными углами по всей диагонали соединяющих треугольников)

Если вам трудно определить площадь параллелограмма, это длина одной из параллельных сторон, умноженная на перпендикулярное расстояние между параллельными сторонами.

0

Wikipedia дает формулу для площади пентаграммы, как 1,72 * п^2 Вы можете использовать площадь = 1,720477 * п * п для немного больше точностей

0

зоны для регулярных пятиугольников = ~ 1.7204774*s^2 , будучи s стороны пятиугольника, таким образом, вы должны заменить ваш расчет с:

// Calculate the area based on formula 
    double area = (n * n * 1.7204774); 
+0

Значение числовой константы, более подходящей для вычисления с двойной точностью, равно 1.7204774005889669 – Henry

1
double area = (n * Math.pow(n, 2))/(4 * Math.tan(Math.PI/n)); 

выше является не правильная формула (п = длина стороны) для rea обычного пятиугольника. Правильная формула:

double area = (5 * n * n))/(4.0 * Math.tan(Math.PI/5)); 
Смежные вопросы