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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ класс полиномы http://www.cyberforum.ru/cpp-beginners/thread1004004.html
функция сложения работает неправильно когда складываются отрицательные числа и еще функция деления вообщене работает, подскажите в чем ошибка ? // polinom.cpp: определяет точку входа для консольного приложения. // //#include <stdafx.h> #include <iostream> #include <cstring> #include <cstdlib> using namespace std; class Polinom {
C++ Определите: сколько раз температура была выше нуля Привет всем!! У меня есть не большая проблемка! Вот суть её: В текстовом файле записаны результаты измерения температуры воздуха, которые проводились ежедневно в течение декабря. Определите: сколько раз температура была выше нуля. Я не знаю, как правильно записать условие!! вот код мой,то есть часть его #include <iostream> #include <cstdlib> http://www.cyberforum.ru/cpp-beginners/thread1004001.html
C++ Проверка строки
Я написал "мини игру". Смысл отгадать число. Человек вводит знак сравнения (>, < или =) и любое число, а комп отвечает "Да, верно" или "Нет, не верно". Например, загадано число 5. Человек вводит "<10", тоесть загаданное число меньше 10 и комп должен ответить "Да, верно". Ну так должно быть... Проблема в том, чтобы рассортировать все по своим местам. Знак сравнения отправить на свою проверку, а...
Общие элементы двух массивов записать в один C++
void search(int a,int b,int c,int n,int m){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a==b){ // так выводит массив c с общими элементами и с мусорными знач c=a; // потому что n=5? а ведь мне нужно только общие элем } } cout<<c<<" "; // как правильно вывести c? }
C++ Builder Сформировать третью матрицу порядка 2N http://www.cyberforum.ru/cpp-beginners/thread1003998.html
Есть две матрицы А и В. Нужно сформировать сформировать третюю матрицу порядка 2N, тоесть елементы матрицы А и В умножить на 2N. Вот код, я немогу сделать правильно, не выходит, нужна помощь. //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h"...
C++ Задача на роботу з чергою Реалізувати чергу для зберігання і операцій з даними виду: Ім'я програми Мова програмування Розмір пам'яті, що потребується Час виконання Забезпечити виконання операцій: • виділення місця в пам'яті під чергу; • додавання елементу в чергу; • видалення елементу з черги; • попередження про можливе переповнювання; • повідомлення про переповнювання; • визначення часу виконання всіх програм;... подробнее

Показать сообщение отдельно
Hoottie_McGOOB
107 / 105 / 5
Регистрация: 04.10.2013
Сообщений: 231
15.11.2013, 08:08     Из заданного на плоскости множества точек выбрать три различные точки
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <cmath>
 
using namespace std;
 
 
template <class type> 
void func (int lstr, type **a1, type **s1)
{
    int i, j;
    double const pi = 3.14;
    type x1, x2, x3, y1, y2, y3, x, y;
    double ma, mb;
    
    type **s = new type*[lstr];
    for ( i = 0; i < lstr; i++){
        s[i] = new type[4];
    }
   
    type **a = new type*[lstr];
    for ( i = 0; i < lstr; i++){ 
        a[i] = new type[2];
    }
    
    
    
    cout << "Enter matrix: ";
    
    for ( i = 0; i < lstr; i++) {
        for (j = 0; j < 2; j++) {
            cin >> a[i][j];
        }
        cout << endl;
    }
    
    cout << "  X  " << " | " << "  Y  " << endl;
    cout << endl;
    
    for (i = 0; i < lstr; i++) {
        for (j = 0; j < 2; j++){ 
            cout << setw(4) << a[i][j] << "  ";
        }
        cout << endl;
    }
    
    
    
    for (int ii = 0; ii < lstr - 2; ii++){
        for (int jj = ii + 1; jj < lstr - 1; jj++) {
            for (int kk = jj + 1; kk < lstr; kk++) {
                x1 = a[ii][0];
                y1 = a[ii][1];
 
                x2 = a[jj][0];
                y2 = a[jj][1];
  
                x3 = a[kk][0];
                y3 = a[kk][1];
 
                cout << " P1(x1;y1) =  ( " << x1 << " ; " << y1 << " )" << endl;
                cout << " P2(x2;y2) =  ( " << x2 << " ; " << y2 << " )" << endl;
                cout << " P3(x3;y3) =  ( " << x3 << " ; " << y3 << " )" << endl;
                
                /////////здесь будет ошибка в расчетах (бесконечность), если в знаменателе будет 0... а он там будет при равенстве x1 и x2 или x2 и x3
                ma = (y2-y1)/(x2-x1);
                cout << "ma" <<  endl; cout <<ma <<endl;
                mb = (y3-y2)/(x3-x2);
                cout << "mb" << mb << endl;
                //////////////
 
                if (mb - ma == 0) {
                    cout << "P1P2 || P2P3 : these points don't form a circle " << endl;
                    break;
                }
 
                 x =  (ma*mb*(y1-y3)+mb*(x1+x2)-ma*(x2+x3))/2*(mb-ma);
                 y =  ((-1)*(x - (x1+x2)/2))/ma +(y1+y2)/2;
                
                cout << "The center O(x;y)" << x << "  " << y << endl; // начинаются проблемы!!! проблемы, т.к. ma или mb - бесконечность..
 
                
                type r =(type) sqrt(double( (x1-x)*(x1-x) - (y1-y)*(y1-y) )); 
                cout << "The radius " << r << endl;
                
                double SC = pi*r*r;
                cout << "Square of the circle " << SC << endl;
                
                double ST = ((x1-x3)*(y2-y3) - (x2-x3)*(y1-y3))/2.0;
                
                cout << "  №  " << "|" << " S of circle " << "|" << " S of tringle " << "|" << "   SC - ST  " << endl;
                
                
                for (int f = 0; f < lstr; f++){
                    s[f][0] = f;
                    s[f][1] = SC;
                    s[f][2] = ST; //!!!!!!!!! здесь было s[f][3]
                    s[f][3] = SC - ST; //!!!!!!! здесь было s[f][4]
                }
                
                for (int f = 0; f < lstr; f++) {
                    for (int g = 0; g < 4; g++) {
                        cout << setw(4) << s[f][g] << "  ";
                        cout << endl;
                    }
                }
                
                for (j = lstr-1; j > 0; j--){
                    for (i = 0; i < j; i++) {
                        if (s[i+1][4] < s[i][4]) {
                            type* min = s[i];
                            s[i] = s[i+1];
                            s[i+1] = min;
                        } 
                    }
                }
                cout << "sorted data" << endl;
                cout << endl;
                cout << "  №  " << "|" << " S of circle " << "|" << " S of tringle " << "|" << "   SC - ST  " << endl;
                
                for (i = 0; i < lstr; i++) {
                    for (j = 0; j < 4; j++) {
                        cout << setw(4) << s[i][j] << "  ";
                    }
                    cout << endl;
                }
            }
        } 
    }
 
 
 
} 
 
 
int main()
{
    int lstr;
    cout << "Enter lstr strings" << endl;
    cin >> lstr;
    int q;
 
    do {     
        cout << "Choose the type of array" << endl;
        cout << "1 - int" << endl;
        cout << "2 - double" << endl;
        cout << "3 - float" << endl;
        cin >> q;
        
        switch(q) 
        {
        case 1: int ** s1;
                int ** a1;
                func ( lstr, a1, s1);
                break;
        
        case 2: double **s2;
                double **a2;
                func ( lstr, a2, s2);
                break;
        
        case 3: float **s3;
                float **a3;
                func ( lstr, a3, s3);
                break;
        }
    } while (q != 4);
    
    
    return 0;
}
 
Текущее время: 22:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru