Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] задача расчет произвольного треугольника по трем з 
:(
    Опции темы
yyyyeeeey
Дата 20.5.2012, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 18.2.2012

Репутация: нет
Всего: нет



Дан произвольный треугольник ABC, для которого определен следующий набор характерных параметров: а, b, с — стороны треугольника; α, β, γ — углы (в градусах); h — высота, опущенная на сторону с; S — площадь; Р — периметр треугольника. По трем заданным параметрам вычислить все остальные. 
 пожалуйста подкиньте алгоритм решения этой задач, заранее спасибо.
PM MAIL   Вверх
feodorv
Дата 20.5.2012, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: нет
Всего: 45



Цитата(yyyyeeeey @  20.5.2012,  16:41 Найти цитируемый пост)
По трем заданным параметрам вычислить все остальные. 

Произвольным? А если (α, β, γ) или (c,h,S)?
Вообще, можно по трём исходным параметрам попытаться вычислить стороны треугольника, и зная их вычислить всё остальное...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
math64
Дата 21.5.2012, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Разумеется, не по всем тройкам можно определить остальные параметры.
По некоторым тройкам остальные параметры не восстановить, по некоторым - получается два решения (нужно решать квадратное уравнение)
Все формулы необходимые есть в учебнике геометрии.

Формулы для прямоугольного треугольника (не прямоугольный можно разбить на два прямоугольных по высоте)
Теорема косинусов, теорема синусов
Формула Герона
и т.д.
PM   Вверх
shara
Дата 21.5.2012, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



Цитата(yyyyeeeey @  20.5.2012,  14:41 Найти цитируемый пост)
подкиньте алгоритм

smile  причем тут Си\С++??  


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
math64
Дата 21.5.2012, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Алгоритм можен быть таким:
Данные о треугольнике храняться в структуре:
Код

struct triangle {
double a, b, c; // стороны
double alpha, beta, gamma; // углы
double ha, hb, hc; // высоты
double S; // площадь
double P; // периметр
double R; // радиус описанной окружности
double r; // радиус вписанной окружности
bool has_a, has_b, has_c, has_alpha, has_beta, has_gamma, has_ha, has_hb, has_hc, has_S, has_P, has_R, has_r;
bool is_right, is_acute, is_obtuse;
};

has_* устранавливается в true если соответствующее поле заполнено.
is_* устанавливаются если треугольник прямоугольный, остроугольный или тупоугольный соотвественно - позволяет выбрать формулы применимые к соответствующему типу треугольника.
Пробуешь применить все имеющиеся формулы, пока все поля не будут заполнены или ни одна формула не может быть применена.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.