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

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

Войти
Регистрация
Восстановить пароль
 
Скуби
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 34
#1

Найти наибольшую из высот треугольника - C++

04.04.2013, 09:24. Просмотров 735. Ответов 2
Метки нет (Все метки)

Последние задачи семестра, помогите пожалуйста!!!
Функции, параметры функций
Определить три функции, выполняющие действия в соответствии с вариантом задания, по одной на каждый способ передачи параметров. Написать программу на С++, осуществляющую вызов этих функций несколько раз с различными параметрами.
1.1 Найти наибольшую из высот треугольника. Известны две стороны треугольника и угол между ними.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 09:24     Найти наибольшую из высот треугольника
Посмотрите здесь:
C++ Найти ортоцентр (точка пересечения высот) треугольника
Из заданных точек найти вершины треугольника, который будет иметь наибольшую площадь C++
C++ сортировать по убыванию значения высот треугольника
Вычислить произведение высот треугольника со сторонами a,b,c C++
Найдите точки пересечения высот и медиан треугольника C++
Упростить код вычисления трёх высот треугольника по трём сторонам C++
C++ По заданным длинам сторон определить вид треугольника, вычислить длины его высот, и вывести их по возрастанию
C++ Даны три числа, если они могут быть длинами сторон равнобедренного треугольника, вычислите длины его высот
C++ Определить наибольшую площадь треугольника, заданного длинами сторон в массиве
C++ Найти длины высот в треугольнике
Известна гипотенуза С и противолежащий угол B прямоугольного треугольника. Найти периметр треугольника C++
С клавиатуры вводятся три числа, считая их сторонами треугольника найти углы этого треугольника C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
10.04.2013, 17:47     Найти наибольшую из высот треугольника #2
Найти наибольшую из высот треугольника. Известны две стороны треугольника и угол между ними.
я точно уже не помню всю геометрию, но мне на ум пришёл следующий способ (не уверен, что он оптимален)

1) найти третью сторону из теоремы косинусов:
с = sqrt(a^2+b^2-2*a*b*cos(Uab))

2)сравнить все три длины a,b,c на предмет какая из них меньше, на неё и опустится самая длинная высота
m = min(min(a,b),c);

3)зарядить форумлу Герона, чтобы найти площадь треугольника S

4)тогда наибольшая высота будет
h = 2S/m

такой способ в С++ выглядит так:
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
#include <algorithm>
#include <iostream>
#include <cmath>
 
 
double geth(double& a, double&b, double& Uab)
{
            
        double c = sqrt(a*a+b*b-2*a*b*cos(Uab));
        double m = std::min(std::min(a,b),c);
        double p = (a+b+c)/2;
        double S = sqrt(p*(p-a)*(p-b)*(p-c));
        
        return 2*S/m;
}
 
int main()
{
        double a = 10;
        double b = 12;
        double Uab = 40*(3.14)/180;  // 40 градусов в радианы
        
        std::cout<<geth(a,b,Uab)<<std::endl;
}
вам я так понимаю надо кроме сигнатуры
C++
1
double geth(double& a, double&b, double& Uab)
добавить ещё две функции
C++
1
double gethV(double a, double b, double Uab)
и
C++
1
double gethP(double* a, double*b, double* Uab)
по полной аналогии
Скуби
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 34
10.04.2013, 19:49  [ТС]     Найти наибольшую из высот треугольника #3
Работает!!!!
Ответ Создать тему
Опции темы

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