Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
Углы треугольника можно найти через площадь, поскольку . Чтобы воспользоваться этой формулой для нахождения угла, нужно найти длины сторон треугольника.
#include<iostream> #include<iomanip> #include<conio.h> #include <windows.h> #define _USE_MATH_DEFINES /* Это определение необходимо включать перед подключением математической библиотеки для использования математических констант */ #include <math.h> using namespace std; //-------------------------------------------------------------------- //функция Len, которая будет находить длину отрезка между двумя точками, double Len (double x1, double y1, double x2, double y2) { return sqrt(pow(x1-x2,2) + pow(y1-y2,2)); } //------------------------------------------------------------ /* Следующая функция будет находить угол между двумя сторонами в градусах. В качестве аргументов функция должна получать длины двух сторон и площадь треугольника */ double Angle(double a, double b, double s) { double x = 2*s / (a*b); //x – это // находим угол и переводим его в градусы return asin(x) * 180 / M_PI; } //============================================================ int main() { if(SetConsoleCP(1251)==0 { cerr<<"Fialed to set codepage!"<<endl; } if(SetConsoleOutputCP(1251)==0) { cerr<<"Failed to set OUTPUT page!"<<endl; }
double x1, y1, x2, y2, x3, y3; // Координаты вершин double a, b, c, u1, u2, u3; // Длины сторон и углы треугольника do { cout<<"Введите координаты вершин треугольника: x1 y1 x2 y2 x3 y3 "; cin>> x1 >> y1 >> x2 >> y2 >> x3 >> y3; // Находим длины сторон, вызывая функцию Len() a=Len(x1,y1,x2,y2); c=Len(x2,y2,x3,y3); b=Len(x1,y1,x3,y3); /* Проверяем возможность построения треугольника: сумма любых двух сторон должна быть больше третьей стороны */ if (a+b>c && b+c>a && a+c>b) { cout<<"Длины сторон треугольника: " <<setprecision(2)<<a<<' '<<b<<' '<<c<<endl; // Находим площадь треугольника по формуле Герона: double p = (a+b+c)/2; double s = sqrt(p*(p-a)*(p-b)*(p-c)); // Находим углы, используя функцию Angle(): u1 = Angle(a, b, s); u2 = Angle(b, c, s); u3 = Angle(a, c, s); cout<<"Углы треугольника: "<<u1<<' '<<u2<<' '<<u3<< " градусов" << endl; } else cout << "Треугольник вырожден\n"; } while (_getch()!=27); return 0; } Date: 2016-08-30; view: 550; Нарушение авторских прав |