Задача ** c ++ В этой задаче должна присутствовать функция нахождения периметра...

0 голосов
52 просмотров

Задача на c ++
В этой задаче должна присутствовать функция нахождения периметра треугольника и функция нахождения площади треугольника. По желанию можно добавить функцию нахождения длины отрезка по его координатам.

Треугольник задан координатами своих вершин. Найдите его периметр и площадь.

Формат входных данных

Вводится три пары вещественных чисел x1, y1, x2, y2, x3, y3, каждое из которых по модулю не превосходит 10 в 5 степени и задано с точностью до двух знаков после запятой, — координаты вершин треугольника.
Формат выходных данных

Требуется вывести два вещественных числа — периметр и площадь треугольника с точностью до шести знаков после десятичной точки.


Информатика (280 баллов) | 52 просмотров
0

ооп следует использовать или без него обойтись?

Дан 1 ответ
0 голосов
Правильный ответ

#include
#include #include
using namespace std;

double St(double x1, double y1, double x2, double y2)
{
return sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
}

double Per(double a, double b, double c)
{
return a+b+c;
}

double S(double a, double b, double c)
{
double p2 = Per(a,b,c)/2;
return sqrt(p2*(p2-a)*(p2-b)*(p2-c));
}

int main()
{
    double x1, y1, x2, y2, x3, y3;
    double a, b, c, p, s;
    cin >> x1 >> y1;
    cin >> x2 >> y2;
    cin >> x3 >> y3;
    a = St(x1,y1,x2,y2);
    b = St(x1,y1,x3,y3);
    c = St(x2,y2,x3,y3);
    p = Per(a,b,c);
    s = S(a,b,c);
    cout.setf(std::ios::fixed);
    cout.precision(6);
    cout << "p = " << p << "\n";<br>    cout << "s = " << s << "\n";<br>    system("Pause");
    return 0;
}

Пример:
1 1
4 1
1 5
p = 12.000000
s = 6.000000

(194k баллов)