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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, находятся ли данные прямые в общем положении http://www.cyberforum.ru/cpp-beginners/thread80872.html
Помогите доделать пожалуйста! Имеется n прямых на плоскости, заданных коэффициентами. Определить, находятся ли данные прямые в общем положении, т.е. все они различны, никакие две из них не параллельны и никакие три не пересекаются в одной точке. #include <iostream> #include <stdio.h> #include <math.h> #include <conio.h> #include <clocale> #define _CRT_SECURE_NO_DEPRECATE 0
C++ функции помогите пожалуйста решить задачу оформить следующие задачи через функции. 1. Вычислить значения функции F на интервале от Хнач. до Хкон. с шагом dX ax^2 + b/c , при x<1 и c|=0 F = { (x-a)/(x-c)^2 , при x>15 и c=0 x^2/c^2 , в остальных случаях где a, b, c – действительные числа http://www.cyberforum.ru/cpp-beginners/thread80871.html
C++ работа со строками
помогите пожалуйста написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел спасибо!
C++ упорядочивание строк матрицы
никак не могу написать программы по индивидуальным заданиям, и списать негде:( помогите пожалуйста!!! коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. с помощью допустимых преобразований привести систему к треугольному виду. найти количество строк, среднее арифметическое элементов которых меньше заданной величины. заранее спасибо!
C++ создания и работы с файлами в языке С++ http://www.cyberforum.ru/cpp-beginners/thread80865.html
1.1 Создать файл, содержащий сведения о месячной заработной плате сотрудников отдела. Каждая запись содержит поля: фамилия сотрудника, наименование отдела, размер заработной платы за месяц, должность сотрудника. 1.2Вычислить общую сумму зарплат работников. Вывести на экран сотрудников у каторых зарплата ниже введёной с клавиатуры. Помогите пожалусто сделал точто смог ,как сделать вторую часть...
C++ никак не могу разобраться с с++ Здравствуйте. У меня проблема. Я не знаю С++ и надо сдавать программы завтра,часть я сама как то написала,но вот остальное без понятия и уже мозг не соображает. Пожалуйста напишите эти задачи. 1)Календарь При решении задач этого раздела принять во внимание, что в современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех номеров,... подробнее

Показать сообщение отдельно
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
28.12.2009, 07:26     Определить минимальное подмножество точек, после удаления которых останутся точки лежащие на одной прямой
тестировать было не когда
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
#include <iostream>
using namespace std;
 
// поиск прямой на которой лежит  максимальное число точек. 
#define X 0
#define Y 1
#define nPoint sizeof(Points)/2/sizeof(Points[0][0])
 
const double Points[][2] = {
    { 1.0, 1.0},
    { 12.0, 12.0},
    { 14.0, 14.0},
    { 15.0, 15.0},
    { 2.0, 3.0},
    { 4.0, 7.0},
    { 5.0, 9.0}
}; 
 
// y=kx+b
double Calc_K(double x1, double y1, double x2, double y2)
{   
    return (y1-y2)/(x1-x2);
}
 
// y=kx+b
double Calc_B(double x1, double y1, double x2, double y2)
{   
    return (y2*x1-y1*x2)/(x1-x2);
}
 
int main ()
{
 
    double k,b, finder[2][2];
    int counter, temp=-1;
 
    for (int i=1; i<nPoint; i++)
    {
        if(Points[i-1][X]==Points[i][X])  continue;
 
        k=Calc_K(Points[i-1][X], Points[i-1][Y], Points[i][X], Points[i][Y]);
        b=Calc_B(Points[i-1][X], Points[i-1][Y], Points[i][X], Points[i][Y]);
        counter=2;
        for (int j=i+1; j<nPoint; j++)
        {
            if(Points[j][Y]==k*Points[j][X]+b) ++counter;
        }
        if(counter>temp) 
        { 
            temp=counter; 
            finder[0][X]=Points[i-1][X]; finder[1][X]=Points[i][X];
            finder[0][Y]=Points[i-1][Y]; finder[1][Y]=Points[i][Y];
        }
    } // for (int i=1;
 
    cout<<"points: "<<temp<<" line:: x1: "<<finder[0][X]<<" y1: "<<finder[0][Y]
            <<" x2: "<<finder[1][X]<<" y2: "<<finder[1][Y]<<endl;
    system("pause");
    return 0;
}
 
Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru