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

Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц http://www.cyberforum.ru/cpp-beginners/thread889469.html
Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц.
C++ Побитовые операторы (Напишите функцию , которая циклически сдвигает х вправо на 1 позицию) Напишите функцию , которая циклически сдвигает х вправо на 1 позицию. При этом младший разряд ставится на место старшего. http://www.cyberforum.ru/cpp-beginners/thread889462.html
C++ const& и const* в имени функции
Объясните пожалуйста что значит const& и const* в имени и параметрах функции(пример из Вандевурд,Джосаттис): template <typename T> inline T const& max(T const& a , T const& b){} inline T const*...
C++ Натуральное число
Не могу понять что от меня требуют. Откуда брать натуральное число? Где взять A и B? Дано натуральное число: 1.Найти все целые числа из промежутка от A до B, у которых сумма делителей равна N (N...
C++ Работа с оператором if в dev (C++) http://www.cyberforum.ru/cpp-beginners/thread889429.html
Помогите,проблема с оператором,ошибок нет но не могу понять как сделать: При вводе цифры '2' выводило другой текст.. Вот основа: #include <iostream> using namespace std; int main();
C++ Префикс функция В чем ошибка: для работы со строками префикс-функция работает а для целочисленного массива выдает не верный ответ. Помогите разобраться.#include <stdio.h> const int m =100; int A; // int pA; ... подробнее

Показать сообщение отдельно
tony_pershin
16 / 16 / 1
Регистрация: 05.03.2013
Сообщений: 36
03.06.2013, 23:02
Как-то я немного криво написал, сейчас нормально сделал.
Первая задача:
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
#include <cmath>
#include <iostream>
 
using namespace std;
struct Point
{
    Point( const double& px = 0., const double& py = 0. ) : x(px), y(py) {}
 
    double x, y;
};
 
struct Rectangle
{
    Point ltPoint; // left top point
    Point rbPoint; // right bottom point
 
    Point GetCenterPoint()
    {
        return Point( (ltPoint.x + rbPoint.x)/2, (ltPoint.y + rbPoint.y)/2 );
    }
};
 
double GetDistance( double x1, double x2, double y1, double y2 )
{
    return ::sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
 
int main()
{
    Rectangle rect;
    double gx;
    double gy;
 
    cout << "Enter X-coord of left top point: ";
    cin >> rect.ltPoint.x;
    cout << "Enter Y-coord of left top point: ";
    cin >> rect.ltPoint.y;
    cout << "Enter X-coord of right bottom point: ";
    cin >> rect.rbPoint.x;
    cout << "Enter Y-coord of right bottom point: ";
    cin >> rect.rbPoint.y;
    cout << "Enter X-coord of researched point: ";
    cin >> gx;
    cout << "Enter Y-coord of researched point: ";
    cin >> gy;
 
    Point center = rect.GetCenterPoint();
    cout << "Distance is " << ::GetDistance( center.x, gx, center.y, gy );
 
    return 0;
}
Вторая задача:
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
#include <cmath>
#include <iostream>
 
using namespace std;
 
struct Point
{
    Point( const double& px = 0., const double& py = 0. ) : x(px), y(py) {}
 
    double x, y;
};
 
struct Rectangle
{
    Point ltPoint; // left top point
    Point rbPoint; // right bottom point
 
    Point GetCenterPoint()
    {
        return Point( (ltPoint.x + rbPoint.x)/2, (ltPoint.y + rbPoint.y)/2 );
    }
};
 
double GetDistance( double x1, double x2, double y1, double y2 )
{
    return ::sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
 
int main()
{
    unsigned int rectCount;
    double gx;
    double gy;
 
    cout << "Enter X-coord of researched point: ";
    cin >> gx;
    cout << "Enter Y-coord of researched point: ";
    cin >> gy;
    cout << "Enter count of rectangles: ";
    cin >> rectCount;
 
    Rectangle rect;
    Point center;
    Rectangle nearestRect;
    Point nearestCenter;
    for( unsigned int i = 0; i < rectCount; ++i )
    {
        cout << "Enter X-coord of left top " << i+1 << "th point: ";
        cin >> rect.ltPoint.x;
        cout << "Enter Y-coord of left top " << i+1 << "th point: ";
        cin >> rect.ltPoint.y;
        cout << "Enter X-coord of right bottom " << i+1 << "th point: ";
        cin >> rect.rbPoint.x;
        cout << "Enter Y-coord of right bottom " << i+1 << "th point: ";
        cin >> rect.rbPoint.y;
 
        center = rect.GetCenterPoint();
        if( (::GetDistance( center.x, gx, center.y, gy ) < ::GetDistance( nearestCenter.x, gx, nearestCenter.y, gy )) || (nearestCenter.x == 0. && nearestCenter.y == 0.) )
        {
            nearestRect = rect;
            nearestCenter = nearestRect.GetCenterPoint();
        }
    }
 
    cout << "Coodinates of found rectangle: X-coord of left top = " << nearestRect.ltPoint.x
                                        << "; Y-coord of left top = " << nearestRect.ltPoint.y
                                        << "; X-coord of right bottom = " << nearestRect.rbPoint.x
                                        << "; Y-coord of right bottom = " << nearestRect.rbPoint.y << endl;
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru