Алгоритм с ветвлением

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Олечка12
Сообщения: 2
Зарегистрирован: 26 мар 2013, 22:23

помогите с кодом, пожалуйста..
Даны координаты четырех точек. Определить какие треугольники, образованные этими точками, имеют максимальные и минимальные периметр и площадь.
FREE PASCAL

Код: Выделить всё

uses math;
var
    n, i, j, c :longint;
    x, y :array[1 .. 5] of longint;
    minP, maxP, minS, maxS, l1, l2, l3 : real;
 
function dist(v, u :longint) :real;
begin
    dist := sqrt(sqr(x[v] - x[u]) + sqr(y[v] - y[u]));
end;
 
function area(v, u, p :longint) :real;
begin
    area := abs((x[v] - x[u]) * (y[p] - y[u]) - (y[v] - y[u]) * (x[p] - x[u])) * 0.5;
end;
 
begin
    for i := 1 to 4 do
        readln(x[i], y[i]);
    minP := 1000000000;
    minS := 1000000000;
 
как найти l1, l2, l3. у меня не получается.
цикл использовать нельзя..(
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Если пронумеровать точки 1, 2, 3, 4, то i-м треугольником можно считать треугольник, образованный всеми точками, кроме i.
В цикле пройдитесь, для каждого треугольника посчитайте dist для каждой пары его вершин, посчитайте площадь. Если они меньше предварительно запомненных - сохраните номер треугольника
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить