Известны координаты вершин АВС треугольника. Напишите программу вычисляющую S-площадь...

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

Известны координаты вершин АВС треугольника. Напишите программу вычисляющую S-площадь этого треугольника. xa=2 ya=1 xb=6 yb=5 xc=10 yc=1


Информатика (15 баллов) | 324 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// тестировалось на C#.Net Framework 4.5
using System;

class Program
{
    static void Main()
    {
        int x1 = 2, y1 = 1;
        int x2 = 6, y2 = 5;
        int x3 = 10, y3 = 1;

        var a = Distance(x2, y2, x3, y3);
        var b = Distance(x1, y1, x3, y3);
        var c = Distance(x2, y2, x1, y1);

       
        Console.WriteLine("S = {0}", Square(a, b, c));
        Console.ReadKey();
    }

    //растояние между точками
    static double Distance(int x1, int y1, int x2, int y2)
    {
        return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
    }

    //формула герона
    static double Square(double a, double b, double c)
    {
        var p = (a + b + c) / 2;
        return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
    }

    // теорема косинусов
    static double Angle(double a, double b, double c)
    {
        return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
    }

    static bool IsAcuteAngel(double alpha)
    {
        return alpha < Math.PI / 2;
    }
}


(53.1k баллов)