Форум программистов, компьютерный форум CyberForum.ru

Найти вершины наибольшего прямоугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать структуру с именем WORKER http://www.cyberforum.ru/cpp-beginners/thread736935.html
Ребят, помогите: Вариант 6 Описать структуру с именем WORKER, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из структур типа WORKER; • записи должны быть размещены по алфавиту; • вывод на дисплей фамилий работников, чей стаж...
C++ Дан массив слов и две подстроки Дан массив слов и две подстроки. Удалить из всех слов массива первое вхождение перевернутой второй подстроки, а затем добавить после первого символа по 3 конечных символа первой подстроки. Сформировать два предложения из слов массива. В первое предложение должны войти слова, которые имеют в своем составе сначала первую, а потом вторую подстроку. Во второе предложение должны войти... http://www.cyberforum.ru/cpp-beginners/thread736924.html
Сравнение двух строк с игнорированием регистра символов C++
stricmp-сравнение двух строк с игнорированием регистра символов, учесть символы кириллицы
C++ Дана целочисленная квадратная матрица
дана целочисленная квадратная матрица. Определить максимальный среди элементов главной диагонали. Помогите.
C++ GDI отрисовка и очистка http://www.cyberforum.ru/cpp-beginners/thread736906.html
Доброго времени суток! Суть такова: Вывожу посредством GDI прямые на консольное окно. После завершения отрисовки мне нужно стереть все то что было нарисовано. system("cls"); не помогает. Заранее спасибо за ответы.
C++ Найти порядковый номер первого положительного элемента массива Необходимо найти порядковый номер первого положительного элемента одномерного массива с помощью 3 разных циклов. подробнее

Показать сообщение отдельно
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
18.12.2012, 18:52     Найти вершины наибольшего прямоугольника
А по-моему тут даны случайные точки и нужно перебрать все варианты(18 треугольников). Или я ошибаюсь?

Добавлено через 10 минут
Для каждого варианта выглядит примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
using namespace std;
 
struct point
{
    double x,y;
    double maxX, maxY;
};
 
static point pnt[]=
{
    {238,306},
    {306, 340},
    {340, 102},
    {136, 0},
    {408, 136},
    {34, 204}
};
 
double pl(double x1, double y1, double x2, double y2, double x3, double y3)
{
    double a,b,c,p;
    a = sqrt(pow((x2-x1), 2) + pow((y2-y1),2));
    b = sqrt(pow((x3-x1), 2) + pow((y3-y1),2));
    c = sqrt(pow((x3-x2), 2) + pow((y3-y2),2));
    p = (a+b+c)/2;
 
    return sqrt(p*(p-a)*(p-b)*(p-c));
}
 
int idx(int i)
{
    return (i > 5 ? i - 6 : i);
}
 
int main()
{
    double max = 0;
 
    for (int i = 0; i < 6; ++i)
    {
        double s = pl(pnt[idx(i)].x, pnt[idx(i)].y, pnt[idx(i+1)].x, pnt[idx(i+1)].y, pnt[idx(i+2)].x, pnt[idx(i+2)].y);
 
        if (max < s)
        {
            max = s;
            pnt[0].maxX = pnt[idx(i)].x;
            pnt[0].maxY = pnt[idx(i)].y;
            pnt[1].maxX = pnt[idx(i+1)].x;
            pnt[1].maxY = pnt[idx(i+1)].y;
            pnt[2].maxX = pnt[idx(i+2)].x;
            pnt[2].maxY = pnt[idx(i+2)].y;
        }
    }
 
    for (int i = 0; i < 3; ++i)
        cout << pnt[i].maxX << " " << pnt[i].maxY << " ";
    cout << endl << max << endl;
    system("pause");
    return 0;
}
 
Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru