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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Изменение и сохранение текстового файла http://www.cyberforum.ru/cpp-beginners/thread827673.html
Дан текстовый файл, содержащий 100 строк. Программа запрашивает у пользователя, что необходимо сделать: a) удалить каждую четную строку b) удалить каждую нечетную строку c) удалить строки, в которых четное кол-во символов. В зависимости от выбора команды, происходит какое-либо действие: a, b или c. Сохранить измененный файл.
C++ класс Block Определите класс Block (параллелепипед), в котором определите три закрытые вещественные переменные (высота, ширина и длина). Определите в классе два конструктора: по умолчанию и с тремя параметрами. Определите в классе закрытую переменную для хранения объёма. Значение объёма должно вычисляться при изменении размеров параллелепипеда. В классе определите открытую функцию для установки значений... http://www.cyberforum.ru/cpp-beginners/thread827671.html
Циклические вычислительные процессы (Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N) C++
Задача предполагает использование целочисленной арифметики и должна быть реализована во втором проекте. Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел. (Помогите пожалуйста, как сделать без массивов)
Вычислить e^x на языке Си C++
Разработать программу, вычисляющую e^x= 1 + x + x^2/2! + x^3/3! +...+ x^n/n! c точностью эпсилон. Помогите с программой плиз на языке Си
C++ OpenSLL http://www.cyberforum.ru/cpp-beginners/thread827647.html
Возникла надобность установить эту библеотеку openssl-1.0.1e на win7не знаю с чего начать
C++ Шеннон-Фано Вопрос будет о методе сжатия изображения(bmp) методом Шеннона-Фано. Допустим я записываю значение, вероятность появления и битовый код в структуру. В итоге получается массив структур. Битовый код я думаю записать в массив типа bool. В итоге я получаю битовый код каждого значения. Вопросы: как по битам записать эти коды в файл ведь в файле только байты(1символ 1 байт)?? и вообще алгоритм... подробнее

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

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