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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex1000
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 17
#1

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

29.06.2012, 11:20. Просмотров 293. Ответов 0
Метки нет (Все метки)

На плоскости задано множество точек. Найти такой отрезок, построенный на паре точек из этого множества, который пересекал бы максимальное число прямых, построенных на остальных
вот мои наработки с комментариями:
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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 11:20     Найти такой отрезок, построенный на паре точек из заданного множества, который пересекал бы максимальное число прямых, построенных на остальных точках
Посмотрите здесь:

В каждой паре найти максимальное число. Вывести его - C++
Помогите с 3 программами. Сам нубас полный. В школе сказали на завтра принести. Цикл с счетчиком 1) Нужно ввести последовательно 10...

Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна - C++
Друзья, мне вновь необходима любая ваша помощь по теме) Задача такова: решить задачу, с помощью структуру для хранения координат точки,...

Найти число точек, у которых ордината больше абсциссы и сумму расстояний от первой точки до остальных - C++
Задание такое: пара (Xk,Yk) представляет координаты одной из n точек на плоскости. Найти число точек, у которых ордината Yk больше абсциссы...

Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок. - C++
1. чНайти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.

Найти сумму и число тех элементов заданного массива, которые попадают на заданный отрезок - C++
Помогите с задачей. Программа на С++. Можно как-нибудь по-проще... Все данные должны вводиться с клавиатуры. Найти сумму и число тех...

Площадь треугольников построенных на n точках - C++
Ребят, нужна помощь. дана такая задачка: Известны координаты n точек. Написать программу, которая вычисляет максимальную площадь...

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

Найти такую точку, что шар радиуса R с центром в этой точке содержит максимальное число точек зад - C++
Найти такую точку, что шар радиуса R с центром в этой точке содержит максимальное число точек заданного множества....

Найти максимальное число k, для которого существует точка прямой, покрытая k отрезками заданного набора - C++
Дано n отрезков: , i=1,…,n. Найти максимальное число k, для которого существует точка прямой, покрытая k отрезками заданного набора. Число...

Из заданного множества int чисел определить максимальное подмножество - C++
Была поставлена задача: &quot;Из заданного множества int чисел определить максимальное подмножество элементов со свойством, что все элементы...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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