Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 19:40   #1
Олечка12
 
Регистрация: 27.03.2013
Сообщений: 6
Печаль Алгоритмы с ветвлениями

помогите с кодом, пожалуйста. язык - FREE PASCAL
Даны координаты четырех точек. Определить какие треугольники, образованные этими точками, имеют максимальные и минимальные периметр и площадь
Олечка12 вне форума Ответить с цитированием
Старый 27.03.2013, 20:00   #2
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Наработки где?
hon вне форума Ответить с цитированием
Старый 28.03.2013, 20:18   #3
Олечка12
 
Регистрация: 27.03.2013
Сообщений: 6
По умолчанию

как находить l1, l2, l3 не могу понять..

Код:
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;
__________
minP := min(minP, l1 + l2 + l3);
                maxP := max(maxP, l1 + l2 + l3);
                minS := min(minS, area(i, j, c));
                maxS := max(maxS, area(i, j, c));
            end;
 
    writeln(minP :0 : 5, ' ',maxP :0 :5);
    writeln(minS :0 : 5, ' ', maxS :0 :5);
Олечка12 вне форума Ответить с цитированием
Старый 31.03.2013, 22:08   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Займусь-ка я некропостингом..

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

Код:
for i := 1 to n 4 do
       Read (point[i]);

// интересный момент получения сторон a, b, c

TArea := FindArea (a, b, c); // кроме формулы Герона ничего в голову не лезет;
if TArea > MaxArea then
       MaxArea := TArea;

TPerim :=  FindPerim (a, b, c);
if TPerim > MaxPerim then
       MaxPerim := TPerim;
// c минимальным также
Вернемся к моменту получения сторон. В самих сторонах ничего достопримечательного нет

А вот в их вершинах этих сторон есть что-то привлекательное.. Как их получить? Перестановки? Это уже слишком.. Перебрать ручками? Тоже не ахти..
Код:
Код:
for i := 1 to 4 do
      for j := 1 to 4 do
           for k := 1 to 4 do
и отсекать вариант, когда i = j или k = j или i = k? Тоже слишком "грубо".. У кого есть светлая мысль по этому поводу?

Последний раз редактировалось Poma][a; 31.03.2013 в 22:12.
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритмы Lunozwetka Общие вопросы C/C++ 1 31.07.2012 13:03
Комбинаторные алгоритмы и алгоритмы на гра-фах Ника-Вероника Паскаль, Turbo Pascal, PascalABC.NET 0 13.03.2012 19:07
Цикл с ветвлениями Jalced Помощь студентам 0 12.10.2011 06:47
Задача из раздела Комбинаторные алгоритмы и алгоритмы на гра-фах в Паскале Klik_1602 Помощь студентам 1 04.01.2011 01:18
Алгоритмы с ветвлениями.(Delphi) flyfry Помощь студентам 2 29.03.2010 14:42