Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
12345678
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 54
#1

Площадь многоугольников - C++

19.09.2012, 19:24. Просмотров 548. Ответов 3
Метки нет (Все метки)

Дана задача: Компонент ListBox содержит названия правильных многоугольников. Составить программу, вычисляющую площадь выбранного многоугольника по введенной длине стороны.

Нашла формулу, по которой можно вычислить площадь любого правильного многоугольника - S= (na^2)/(4 tan⁡〖(180/n)〗 ) где n - количество сторон, а - длина стороны

Текст программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a,b, cm2, n;
switch (ListBox1->ItemIndex)
{case 0: n=3;break;
case 1: n=4;break;
case 2: n=5;break;
case 3: n=6;break;
case 4: n=7;break;
case 5: n=8;break;
case 6: n=9;break;
case 7: n=10;break;
}
a=StrToFloat(Edit1->Text);
b=180/n;
cm2=(n*(pow(a,2)))/(4*(tan(b))) ;
Label3->Caption="Площадь многоугольника " +
FloatToStrF(cm2,ffFixed,6,3) + " см ";
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListBox1->ItemIndex=0;
}
//---------------------------------------------------------------------------
В итоге программа работает, но считает не правильно. Например, когда выбираешь длину 5 и многоугольник квадрат, программа выдает число 15, хотя должно быть 25.

Подскажите, что не так в программе? Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2012, 19:24     Площадь многоугольников
Посмотрите здесь:

Составить базу данных о квартирах дома (от 6 до 12). Для каждой квартиры указать номер, жилую площадь, общую площадь, количество жильцов... C++
Найти площадь грани, площадь полной поверхности и объем куба C++
C++ Координаты вершин многоугольников
C++ Пересечение двух многоугольников
C++ Сравнить площадь круга и площадь квадрата , которые заданы сответствено радиусом r и стороной квадрата a
C++ Определить площадь круга и площадь заштрихованных областей
Площадь C++
C++ Проверить лежит ли один из многоугольников строго внутри другого и определить площади многоугольников
C++ Приложение должно обеспечивать формирование и редактирование группы фигур многоугольников и эллипсов
C++ Площадь пересечения многоугольников
Найти площадь грани, площадь полной поверхности и объем куба C++
C++ Вычислить площадь многоугольника с использованием функции,которая определяет площадь по координатам его вершин

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fler
208 / 210 / 9
Регистрация: 20.12.2011
Сообщений: 635
19.09.2012, 19:41     Площадь многоугольников #2
предположу, что стоит использовать не 180/n, а M_PI/n, т.к. тригонометрические функции принимают аргументы не в градусах, а в радианах
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
19.09.2012, 19:43     Площадь многоугольников #3
я бы посоветовал вместо 180 использовать 3.1415926
12345678
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 54
19.09.2012, 19:45  [ТС]     Площадь многоугольников #4
Да!Это помогло! Спасибо большое)
Yandex
Объявления
19.09.2012, 19:45     Площадь многоугольников
Ответ Создать тему
Опции темы

Текущее время: 16:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru