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

точки, треугольник - C++

Восстановить пароль Регистрация
 
soonshoo
 Аватар для soonshoo
238 / 5 / 2
Регистрация: 09.03.2010
Сообщений: 56
20.11.2010, 17:24     точки, треугольник #1
не могу довести до ума задачу: дано множество точек, выбрать три разные точки, составляющие треугольник наибольшего периметра.
проблема с условием ,связанным с проверкой существования треугольника.
помогите пожалуйста))буду признательна за подсказки)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 17:24     точки, треугольник
Посмотрите здесь:

C++ Выбрать 3 разные точки заданного на плоскости множества точек,составляющие треугольник наибольшего периметра
C++ Выбрать три разные точки заданного на плоскости множества точек, составляющие треугольник наибольшего периметра
Попадание точки в треугольник C++
C++ Массив, заполненный 1 и 0. Найти путь, состоящий из нулей, от точки до точки.
Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (2,1) (3,0) (-1,0) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.11.2010, 17:35     точки, треугольник #2
Что значит "проверка существования треугольника"? Если есть три точки - значит есть и треугольник, вершинами которого эти точки являются (за исключением случая, когда эти точки совпадают (хотя такого, думаю, по смыслу и по алгоритму не получится), и случая, когда все три точки лежат на одной прямой, но это легко проверить - курите линейную алгебру)
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.11.2010, 17:45     точки, треугольник #3
Суть:
Неравенство треугольника
В невырожденном треугольнике сумма длин двух его сторон больше длины третьей стороны, в вырожденном — равна. Иначе говоря, длины сторон невырожденного треугольника связаны следующими неравенствами.
Код
a<b+c
b<a+c
c<a+b
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.11.2010, 17:51     точки, треугольник #4
ForEveR, я, конечно, извиняюсь, но разве в данном множестве точек могут найтись вырожденные треугольники? Тут скорее наоборот, будет только подтверждаться неравенство треугольника, нам ведь не набор длин сторон дан...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.11.2010, 18:01     точки, треугольник #5
silent_1991, Да. Не прав. Если бы нам были даны длины сторон тогда да. А так нет. Спасибо
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.11.2010, 18:04     точки, треугольник #6
ForEveR, ну почему же не правы, всё правильно))) Просто к данной задаче неприменимо, ибо вопрос вообще некорректен, проверять нечего (либо автор что-то другое имел ввиду).
soonshoo
 Аватар для soonshoo
238 / 5 / 2
Регистрация: 09.03.2010
Сообщений: 56
20.11.2010, 18:14  [ТС]     точки, треугольник #7
всем спасибо)))) я нашла ошибку))) прошу прощения. вопрос был неполный))) надо было код выложить))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 18:38     точки, треугольник
Еще ссылки по теме:

C++ Написать функцию булевского типа, проверяющую попадание точки с заданными координатами в треугольник с вершинами в точках (1,1) (0,2) (-1,0)
Входит ли точки в треугольник из двух множеств точек C++
Во введенной строке заменить все запятые на точки, а точки - на восклицательные знаки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
20.11.2010, 18:38     точки, треугольник #8
Хоть вопрос уже и решен может быть такой вариант пригодится кому нибудь
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
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
float perimetr(int x1,int y1, int x2, int y2, int x3, int y3)
{
    float a,b,c;
    a=sqrt(float((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
    b=sqrt(float((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)));
    c=sqrt(float((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)));
    if(a>b+c || b>a+c || c>b+a)
        return 0;
    return a+b+c;
}
int main ()
{
    int X[8]={1,6,3,8,4,1,8,3};
    int Y[8]={2,4,1,7,9,3,5,8};
    int i,j,k;
    int imax, jmax, kmax;
    float pmax=0,p=0;
    for(i=0;i<8;i++)
    {
        for(j=i+1;j<8;j++)
        {
            for(k=j+1;k<8;k++)
            {
                p=perimetr(X[i],Y[i],X[j],Y[j],X[k],Y[k]);
                if(pmax<p)
                {
                    pmax=p;
                    imax=i;
                    jmax=j;
                    kmax=k;
                }
            }
        }
    }
    if(pmax==0)
        cout<<"is etih tochek treugolnik sostavit nelzya!!!";
    else
    {
        cout<<"tochka - "<<imax<<"\n";
        cout<<"tochka - "<<jmax<<"\n";
        cout<<"tochka - "<<kmax<<"\n";
    }
    system ( " Pause " );
    return 0;
}
Yandex
Объявления
20.11.2010, 18:38     точки, треугольник
Ответ Создать тему
Опции темы

Текущее время: 16:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru