Форум программистов, компьютерный форум 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, 16: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
 
// 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, n;
 
    cout<<"Enter number points( n>2 ): "; cin>>n;
    if(n<=2) { cout<<"Number points is little"; system("pause");    return 0;}
 
    double ** Points = new  double* [n];
    for (int i=0; i<n; i++)
    {
        Points[i]= new double [2];
        cout<<"Enter pair["<<i+1<<"]:\nx: "; cin>>Points[i][X];
        cout<<"y: ";                                                 cin>>Points[i][Y];     
    }   
 
    for (int i=1; i<n; 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<n; 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<<"\n line:: x1: "<<finder[0][X]<<" y1: "<<finder[0][Y]
    <<"\n        x2: "<<finder[1][X]<<" y2: "<<finder[1][Y]<<endl;
    system("pause");
    return 0;
}
 
Текущее время: 11:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru