Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Alex1000
0 / 0 / 2
Регистрация: 02.01.2012
Сообщений: 17
#1

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

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

Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна
осталась последняя задача по Си, от неё зависит зачёт. Условия такие: найти...

Среди треугольников узнать такой, стороны которого содержат максимальное число точек заданного множества
Нужно написать программу с использованием технологии структурного...

Найти выпуклый многоугольник с вершинами в некоторых точках из заданного множества точек на плоскости
Задано множество точек на плоскости. Найти выпуклую оболочку этого множества,...

Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна
Всем привет! Нужна ваша помощь! Искал задачку нашел только на С++ и С# а вот на...

Найти такую точку заданного множества точек на плоскости, сумма расстояний от которой до остальных минимальна
Найти такую точку заданного множества точек на плоскости, сумма расстояний от...

Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна
Даны точки(неограниченно) с координатами. Найти такую точку заданного на...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2012, 11:20
Привет! Вот еще темы с решениями:

Среди заданного на плоскости точек найти такую, сумма расстояний от который до остальных МАКСИМАЛЬНА
Среди заданного на плоскости точек найти такую, сумма расстояний от который до...

Из заданного множества точек на плоскости выбрать три разные точки А В С так, чтобы внутри треугольника АВС содержалось максимальное количество точек.
Помогите написать программный модуль для решения задачи. Из заданного...

Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров с центрами в этих точках, содержащих ровно n точек этого множества
Задано множество точек в трехмерном пространстве. Найти минимум радиусов шаров...

Найти число точек и сумму расстояний от первой точки до остальных точек
Вектора X и Y задаются вводом; n — размер каждого из векторов X и Y. Пара...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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