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

Найти такой отрезок, построенный на паре точек из заданного множества, который пересекал бы максимальное число прямых, построенных на остальных точках - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск последовательности в пакете данных http://www.cyberforum.ru/cpp-beginners/thread616284.html
Имеется файл в формате .sig, содержащий пакеты данных, необходимо в этом пакете обнаружить определенную последовательность символов, подскажите пожалуйста через что подступиться, с чего начать?
C++ Строка: Распечатать на экране по отдельности все цифры заданного числа. Задано целое положительное число n. Распечатать на экране по отдельности все его цифры. Например, дано 1253, распечатываем: 1 2 5 3 Как это сделать? http://www.cyberforum.ru/cpp-beginners/thread616263.html
C++ Программа с часами
Доброго времени суток! Вот программа с часами, подскажите пожалуйста почему при запуске выскакивает 9? #include <iostream> using namespace std; class State { public: virtual void handle() = 0; protected: static int h_, m_, s_;
C++ Программирование курсора мыши
собственно есть нужда сделать из мышки подобие рычага, я так понимаю нужно привязать курсор к осям координат и допустим, при движении вперёд мышки на компьютер подавался сигнал аналогичный джойстику при таком движении. Как это осуществить?
C++ Чтение из БД http://www.cyberforum.ru/cpp-beginners/thread616173.html
Помогите, пожалуйста! Как прочесть ID последней записи в таблице БД?
C++ Реализовать класс Account Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется операцией инициализации. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в... подробнее

Показать сообщение отдельно
Alex1000
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 17
29.06.2012, 11:20     Найти такой отрезок, построенный на паре точек из заданного множества, который пересекал бы максимальное число прямых, построенных на остальных точках
На плоскости задано множество точек. Найти такой отрезок, построенный на паре точек из этого множества, который пересекал бы максимальное число прямых, построенных на остальных
вот мои наработки с комментариями:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <locale>
#include <conio.h>
using namespace std;
// описание структура вектора
struct vect 
{   double x;
    double y;
};
// вычисление суммы векторов
vect sumVect(vect a,vect b){
    vect c;
    c.x=a.x+b.x;
    c.y=a.y+b.y;
    return c;
};
// вычисление разности векторов
vect difVect(vect a,vect b){
    vect c;
    c.x=a.x-b.x;
    c.y=a.y-b.y;
    return c;
};
// вычисление скалярного произведения 
double scalMult(vect a,vect b){
    return (a.x*b.x+a.y*b.y);
}
// вычисление произведения числа на вектор
vect numbMult(double n, vect a){
    vect b;
    b.x=n*a.x; b.y=n*a.y;
    return b;
}
// вычисление проекции вектора а на вектор n
vect proectAN(vect a,vect n) {
    double k = scalMult(a,n)/scalMult(n,n);
    return(numbMult(k,n));
}
// вычисление проекции вектора а плоскость с нормалью n
vect normAN(vect a,vect n){
    vect b=proectAN(a,n);
    return(difVect(a,b)); 
}
// печать вектора
void printVect(vect a){
    cout << "\nx= " <<a.x << "\ty= " << a.y; 
}
// чтение из файла массива тестов
int inTests(int &k, vect *&a, vect *&n){
    ifstream f;
    char filename[100];
    cout << "введите имя файла с тестами" << endl;
    cin >> filename;
 
    f.open(filename);
    if (!f)
        return 0;
    f >> k;
    a=new vect[k]; n=new vect[k];
    for (int i=0;i<k;i++)
        f >> a[i].x >> a[i].y >> n[i].x >> n[i].y;
    f.close();
    return 1;
}
int main()
{
    setlocale(LC_ALL,"russian");
 
    int k;
    vect *a, *n;
    // ввод тестов
    if (!inTests(k,a,n)){
        cout << "\n не прошло чтение тестов !!!\n"; return 0;
    }
    vect an,aon;
    // цикл по тестам
    for (int i=0; i<k; i++){
        cout << "\nvect"; printVect(a[i]);
        cout << "\nnorm"; printVect(n[i]);
        cout << "\nproect"; an=proectAN(a[i],n[i]); printVect(an);
        cout << "\nnormal"; aon=normAN(a[i],n[i]); printVect(aon);
        cout << "\nortogon\t" << scalMult(an,aon);
        cout << "\n";
    }
    return(0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru