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

Определить, находятся ли данные прямые в общем положении - C++

Восстановить пароль Регистрация
 
junkfatality
Сообщений: n/a
02.07.2014, 12:12     Определить, находятся ли данные прямые в общем положении #1
Прямая на плоскости может быть задана уравнением ax+by+c=0, где a и b одновременно не равны нулю. Будем рассматривать прямые только с целыми коэффициентами a,b,c. Пусть даны коэффициенты нескольких прямых: a1,b1,c1,a2,b2,c2,...,aN,bN,cN.

Определить, находятся ли данные прямые в общем положении. (Прямые находятся в общем положении, если все они различны, никакие две из них не параллельны и никакие три не пересекаются в одной точке)

Добавлено через 34 минуты
up.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2014, 12:12     Определить, находятся ли данные прямые в общем положении
Посмотрите здесь:

C++ Определить находятся ли данные прямые в общем положении
C++ Определить, находятся ли данные прямые в общем положении
Определить пересекаются две прямые, параллельны или совпадают.Две прямые заданы уравнениями: ax+by+c=0, px+qy+r=0 C++
Определить пересекаются две прямые, параллельны или совпадают C++
Определить, пересекаются ли прямые, совпадают или параллельны C++
C++ помогите пожалуйста задать прямые с помощью структур прямые задаются точкой и направляющим вектором. дальше как делать знаю
C++ Две прямые описываются уравнениями напечатать координаты точки пересечения этих прямых, либо сообщить что эти прямые совпада
Определить, являются ли прямые параллельными или перпендикулярными C++
Определить, пересекаются ли эти прямые, совпадают или параллельны C++
Вывести данные об общем числе студентов, факультетов и кафедр. C++
Определить, имеются ли три прямые, пересекающиеся в одной точке C++
Вывести данные об общем числе студентов, факультетов и кафедр C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ott88
10 / 10 / 0
Регистрация: 30.09.2013
Сообщений: 46
02.07.2014, 13:30     Определить, находятся ли данные прямые в общем положении #2
Программа сначала запрашивает количество прямых, затем запрашивает параметры прямых. Параметры для каждой отдельной прямой вводятся через пробел.
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>
#include <conio.h>
using namespace std;
 
struct straight{
    int a;
    int b;
    int c;
};
 
bool areDifferent(straight* m, int size_of_massiv)
{
    bool diff=true;
    bool paral=false;
    bool triple;
    double x, y;
    for (int i=0; i<size_of_massiv-1; i++)
    {
        for (int j=i+1; j<size_of_massiv; j++)
        {
            if (m[i].a*m[j].b==m[i].b*m[j].a)
            {
                paral=true;
                if (m[i].a*m[j].c==m[i].c*m[j].a) diff=false;
            }
        }
    }
    if (!paral)
    {
        triple=false;
        for (int i=0; i<size_of_massiv-2; i++)
        {
            for (int j=i+1; j<size_of_massiv-1; j++)
            {
                x=(m[i].b*m[j].c+m[j].b*m[i].c)/(m[j].a*m[i].b-m[j].b*m[i].a);
                y=-m[i].c/m[i].b-(m[i].a/m[i].b)*x;
                for (int k=j+1; k<size_of_massiv; k++) if (m[k].a*x+m[k].b*y==m[k].c) triple=true;
            }
        }
    }
 
    return diff&&(!paral)&&(!triple);
}
 
int main()
{
    int kolichestvo;
    cout << "Vvedite kolichestvo priamyh" << endl;
    cin>>kolichestvo;
    straight* p=new straight[kolichestvo];
    for (int i=0; i<kolichestvo; i++)
    {
        cout<<"p["<<(i+1)<<"] ";
        cin>>p[i].a>>p[i].b>>p[i].c;
        cout<<endl;
    }
    if (areDifferent(p, kolichestvo)) cout<<"Priamyje v obshem polozhenii";
    else cout<<"Priamyje ne v obshem polozhenii"<<endl;
    getch();
    return 0;
}
Хотя может есть еще какие-нибудь способы
Yandex
Объявления
02.07.2014, 13:30     Определить, находятся ли данные прямые в общем положении
Ответ Создать тему
Опции темы

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