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

Программа на Си. Геометрическая - C++

Восстановить пароль Регистрация
 
Slosh
0 / 0 / 0
Регистрация: 27.02.2011
Сообщений: 4
04.07.2011, 20:38     Программа на Си. Геометрическая #1
Подсчитать количество равносторонних треугольников с различными длинами оснований и вершинами в заданном множестве точек на плоскости.

Добавлено через 22 часа 4 минуты
помогите пожайлуста, очень надо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2011, 20:38     Программа на Си. Геометрическая
Посмотрите здесь:

C++ Геометрическая прогресия
C++ геометрическая программа (С++)
Геометрическая прогрессия C++
C++ Геометрическая прогрессия
C++ Геометрическая прогрессия C++
C++ Геометрическая программа
Геометрическая фигура C++
C++ Геометрическая фигура

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dzhej-Dzhej
Заблокирован
05.07.2011, 13:29     Программа на Си. Геометрическая #2
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
#include <math.h>
#include <iostream>
using namespace std;
struct Point
{
    double X;
    double Y;
};
int main()
{
    const int c=5;//количество точек
    double delta=0.000001;
    Point *p = new Point[c];
    p[0].X = 0.0; p[0].Y = 1.0;
    p[1].X = 0.866025; p[1].Y = -0.5;
    p[2].X = -0.866025; p[2].Y = -0.5;
    p[3].X = 1; p[3].Y = -1;
    p[4].X = 0; p[4].Y = -2;
    int count = 0;
    for(int i = 0; i < c - 2; i++)
        for(int j = i + 1; j < c; j++)
            for(int k = j + 1; k < c; k++)
                if(j < k)
                {//убрать, это для проверки
                    double a=sqrt(pow(p[i].X - p[j].X,2) + pow(p[i].Y - p[j].Y,2));//убрать, это для проверки
                    double b=sqrt(pow(p[k].X - p[j].X,2) + pow(p[k].Y - p[j].Y,2));//убрать, это для проверки
                    double c=sqrt(pow(p[k].X - p[i].X,2) + pow(p[k].Y - p[i].Y,2));//убрать, это для проверки
                    cout << a << endl;//убрать, это для проверки
                    cout << b << endl;//убрать, это для проверки
                    cout << c << endl;//убрать, это для проверки
                    if((abs(a-b) < delta) && (abs(a-c) < delta)) ++count;//эта строка нужна!!!!!!!!!!!!
                    cout << count << endl; //убрать, это для проверки
                    cout << endl;//убрать, это для проверки
                }//убрать, это для проверки
    cout << count << endl; 
    system("pause");
    return 0;
}
delta=0.000001; - пришлось ввести погрешность для чисел с плавающей запятой

PS: на срр не пишу уже несколько лет, написАл ради спортивного интереса, так что не сильно критикуйте
Yandex
Объявления
05.07.2011, 13:29     Программа на Си. Геометрическая
Ответ Создать тему
Опции темы

Текущее время: 05:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru