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

Найти растояние - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не работает. http://www.cyberforum.ru/cpp-beginners/thread141318.html
Функция должна выбирать из массива указателей-на-char самую большую, и вывести её на экран. Прога сообщает: cannot convert `char**' to `char*' for argument `1' to `void largest(char*, int)' void largest(char arr, int i) { int size=0; for (int k=0;i<k;k++) { if (sizeof(arr)>=size) { size=sizeof(arr); }; } for (int l=0;i<l;l++)
C++ WinAPI Синхронизация потоков средствами WinAPI В MFC для синхронизации потоков есть 3 вида объектов: критические секции, мютексы, семафоры. Первые из них - самые простые, но этого, в принципе, достаточно. А если не хочу использовать MFC, тогда как? (Надо "залочить" некоторую область адресного пространства, чтобы доступ к ней имел только текущий поток - есть ли такая возможность у WinAPI?) http://www.cyberforum.ru/cpp-beginners/thread141316.html
C++ Доступ к защищенным данным
Возникла следующая проблема: мне необходимо обеспечить доступ к скрытым членам класса всем производным другого класса, при этом объявлять множественое наследование мне не хочется, а обьявление классов дружественными не работает на потомков.
Много вопросов C++
ребят подскажите как зделать Panel прозрачной а текст который в ней есть осталься видимым
C++ Сумма побочной диагонали http://www.cyberforum.ru/cpp-beginners/thread141291.html
помогите пожалуйста! напишите код суммы побочной диагонали в С++
C++ Удаление элементов вектора с использованием итератора в STL Задача: создать программу, в которую пользователь может ввести свой список из 50 названий игр, а потом при желании удалить выбранную игру. Программа обязательно должна быть написана с использованием векторов и итераторов, использование контейнера list не допускается. Я читал, что удаление элемента из середины вектора смещает все остальные элементы на один и обнуляет присвоенные вектору... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,695
05.06.2010, 23:03     Найти растояние
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
//Найти расстояние между двумя заданными множествами точек на плоскости. 
#include <string>
#include <iostream>
#include <iomanip>
#include <vector>
#include <sstream>
#include <cmath>
#include <algorithm>
 
typedef std::string  T_str;
 
struct T_point
{
    double x_;
    double y_;
    T_point(double x = 0, double y = 0) : x_(x), y_(y)
    {}
 
    T_point(const T_str&  str_coord)
    {
        std::istringstream  in_potok(str_coord);        
        in_potok >> x_;        
        in_potok >> y_;
    }
 
    operator T_str() const
    {
        std::ostringstream  out_potok;
        out_potok << "(" << x_ << ", " << y_ << ")";
        return  out_potok.str();        
    }
 
    double distance(const T_point&  point) const
    {
        double x_shift = x_ - point.x_;
        double y_shift = y_ - point.y_;
        return sqrt(x_shift * x_shift + y_shift * y_shift);
    }
};
 
typedef std::vector<T_point>   T_points;
typedef std::vector<T_points>  T_point_sets;
typedef std::vector<double>    T_distances;
 
double get_dist(T_point_sets  point_sets)
{
    T_distances  distances;
    //Обходим все точки первого множества и находим для каждой из них
    //расстояние для каждой точки второго множества, и записываем это
    //расстояние в distances.
    for(T_points::const_iterator set1_it = point_sets[0].begin();
        set1_it != point_sets[0].end(); ++set1_it)
    {
        for(T_points::const_iterator set2_it = point_sets[1].begin();
            set2_it != point_sets[1].end(); ++set2_it)
        {
            distances.push_back(set1_it->distance(*set2_it));
        }
    }
    return *std::min_element(distances.begin(), distances.end());
}
 
int main()
{
    std::locale::global(std::locale("rus"));
    T_point_sets  point_sets(2);
    for(int point_set_ind = 0; point_set_ind < point_sets.size(); ++point_set_ind)
    {
        std::cout << std::endl
                  << "Введите координаты точек "
                  << point_set_ind + 1
                  << "-го множества"
                  << std::endl
                  << " (парами через пробел, конец ввода - пустая строка):"
                  << std::endl;
        for(int point_ind = 1; ; ++point_ind)
        {
            std::cout  << "точка " << point_ind << ": ";
            T_str  str_point_coords;
            getline(std::cin, str_point_coords);
            if(str_point_coords.empty()) break;
            point_sets[point_set_ind].push_back(str_point_coords);
        }        
    }
    std::cout << std::endl;
    for(int point_set_ind = 0; point_set_ind < 2; ++point_set_ind)
    {
        std::cout << std::endl
                  << point_set_ind + 1 << "-е множество:" << std::endl;       
        for(size_t  point_ind = 0; 
            point_ind < point_sets[point_set_ind].size(); ++point_ind)
        {
            std::cout << "точка " 
                      << point_ind + 1 
                      << ": " 
                      << T_str(point_sets[point_set_ind][point_ind])                                            
                      << std::endl;
        }
    }
 
    std::cout << std::endl
              << std::endl
              << "Расстояние между этими множествами равно: "
              << get_dist(point_sets)
              << std::endl;
    return 0;
}
 
Текущее время: 08:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru