Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 5
1

Вывести максимальное расстояние из трех отрезков

14.10.2018, 23:01. Показов 1397. Ответов 7
Метки max (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:
Три точки заданы своими координатами. Найти наиболее удаленные друг от друга точки. Координаты первой точки - (A.x, A.y); второй точки – (B.x, B.y); третьей точки - (Z.x, Z.y).
Я нашел 3 отрезка. Но максимально вывести не получается ошибки выдает.
Вот код без ошибок. Помогите вывести максимально расстояние в ответе
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
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
struct point
{
    double x;
    double y;
    double z;
};
 
double LongAB(point &A, point &B);
double LongAZ(point &A, point &Z);
double LongZB( point &B, point &Z);
 
int  main()
{
    int max;
    point A, B, Z;
 
    cout << "Vvedite koordinati tochki A:\nX=";
    cin >> A.x;
    cout << "Y=";
    cin >> A.y;
 
    cout << "Vvedite koordinati tochki B:\nX=";
    cin >> B.x;
    cout << "Y=";
    cin >> B.y;
 
    cout << "Vvedite koordinati tochki Z:\nX=";
    cin >> Z.x;
    cout << "Y=";
    cin >> Z.y;
    
    
    cout << "\nAB: " << LongAB(A, B)  << endl;
    cout << "\nZB: " << LongZB(Z, B)  << endl;
    cout << "\nAZ: " << LongAZ(Z, A) << endl;
    
    
    system("pause");
    return 0;
}
 
double LongAB(point &A, point &B)
{
    return sqrt(pow(B.x - A.x, 2) + pow(B.y - A.y, 2));
}
double LongAZ(point &A, point &Z)
{
    return sqrt(pow(Z.x - A.x, 2) + pow(Z.y - A.y, 2));
}
double LongZB(point &B, point &Z)
{
    return sqrt(pow(Z.x - B.x, 2) + pow(Z.y - B.y, 2));
}
Добавлено через 12 минут
ОЙ я сам смог )
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
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
struct point
{
    double x;
    double y;
    double z;
};
 
double LongAB(point &A, point &B);
double LongAZ(point &A, point &Z);
double LongZB( point &B, point &Z);
 
int  main()
{
    int max;
    point A, B, Z;
 
    cout << "Vvedite koordinati tochki A:\nX=";
    cin >> A.x;
    cout << "Y=";
    cin >> A.y;
 
    cout << "Vvedite koordinati tochki B:\nX=";
    cin >> B.x;
    cout << "Y=";
    cin >> B.y;
 
    cout << "Vvedite koordinati tochki Z:\nX=";
    cin >> Z.x;
    cout << "Y=";
    cin >> Z.y;
    
    int BZ = LongZB(Z, B);
    int AB = LongAB(A, B);
    int AZ = LongAZ(Z, A);
 
    if (AB > BZ && AB > AZ) {
        max = AB;
    }
    if (BZ > AB && BZ > AZ) {
        max = BZ;
    }
    if (AZ > AB && AZ > BZ) {
        max = AZ;
    }
    cout << "\nAB: " << max << endl;
    cout << "\nAB: " << LongAB(A, B)  << endl;
    cout << "\nZB: " << LongZB(Z, B)  << endl;
    cout << "\nAZ: " << LongAZ(Z, A) << endl;
    
    
    system("pause");
    return 0;
}
 
double LongAB(point &A, point &B)
{
    return sqrt(pow(B.x - A.x, 2) + pow(B.y - A.y, 2));
}
double LongAZ(point &A, point &Z)
{
    return sqrt(pow(Z.x - A.x, 2) + pow(Z.y - A.y, 2));
}
double LongZB(point &B, point &Z)
{
    return sqrt(pow(Z.x - B.x, 2) + pow(Z.y - B.y, 2));
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2018, 23:01
Ответы с готовыми решениями:

Определить, можно ли из трех отрезков построить треугольник
Заданы длины отрезков a, b и c. Определить, можно ли из этих отрезков построить треугольник....

Определить можно ли составить треугольник из трех введенных отрезков
Написать код, которая по введённым с клавиатуры длинам трёх отрезков a,b,c определяла, могут ли эти...

Вывести наименьшее расстояние между концами отрезков
Пусть даны два отрезка, заданные координатами точек их концов. Найти с точностью до тысячных...

Даны длины трех отрезков. Определить, можно ли из этих отрезков сложить треугольник?
Даны длины трех отрезков. Определить, можно ли из этих отрезков сложить треугольник? и как сделать...

7
Заблокирован
14.10.2018, 23:02 2
А зачем 3 одинаковые функции?
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,495
Записей в блоге: 1
14.10.2018, 23:03 3
Цитата Сообщение от Miktot Посмотреть сообщение
ОЙ я сам смог )
у меня для тебя плохие новости
0
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 5
14.10.2018, 23:15  [ТС] 4
Блин... Я запутался
0
Заблокирован
14.10.2018, 23:19 5
Цитата Сообщение от Miktot Посмотреть сообщение
Блин... Я запутался
Ага. По условию точки 3D или 2D? Судя по типу - таки 3D
C++
1
2
3
4
5
6
struct point
{
    double x;
    double y;
    double z;
};
0
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 5
14.10.2018, 23:22  [ТС] 6
2D координаты X и Y
A;B; Z; это точки
0
Заблокирован
14.10.2018, 23:35 7
Лучший ответ Сообщение было отмечено Miktot как решение

Решение

Цитата Сообщение от Miktot Посмотреть сообщение
2D координаты X и Y
A;B; Z; это точки
Пипец как логично. Мож проще было A, B, C обозвать?

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
typedef struct
{
    double x;
    double y;
} point;
 
// расстояние между 2D-точками
double distance(point p0, point p1)
{
  double dx = p0.x - p1.x, dy = p0.y - p1.y;
  return sqrt(dx * dx + dy * dy);
}
0
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 5
15.10.2018, 00:08  [ТС] 8
Сейчас всё работает. Спасибо всем навели на правильную мысль.
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
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
struct point
{
    double x;
    double y;
};
 
double LongAB(point &A, point &B);
double LongAZ(point &A, point &Z);
double LongBZ( point &B, point &Z);
 
int  main()
{
    point A, B, Z;
 
    cout << "Vvedite koordinati tochki A:\nX=";
    cin >> A.x;
    cout << "Y=";
    cin >> A.y;
 
    cout << "Vvedite koordinati tochki B:\nX=";
    cin >> B.x;
    cout << "Y=";
    cin >> B.y;
 
    cout << "Vvedite koordinati tochki Z:\nX=";
    cin >> Z.x;
    cout << "Y=";
    cin >> Z.y;
    
    
    int AB = LongAB(A, B);
    int AZ = LongAZ(A, Z);
    int BZ = LongBZ(B, Z);
 
    if (AB > BZ && AB > AZ) {
        cout << "\nAB: " << AB << endl;
    }
    else if  (BZ > AB && BZ > AZ) {
        cout << "\nBZ: " << BZ << endl;
    }
    else if (AZ > AB && AZ > BZ) {
        cout << "\nAZ: " << AZ << endl;
    }
    
    
    system("pause");
    return 0;
}
 
double LongAB(point &A, point &B)
{
    return sqrt(pow(B.x - A.x, 2) + pow(B.y - A.y, 2));
}
double LongAZ(point &A, point &Z)
{
    return sqrt(pow(Z.x - A.x, 2) + pow(Z.y - A.y, 2));
}
double LongBZ(point &B, point &Z)
{
    return sqrt(pow(Z.x - B.x, 2) + pow(Z.y - B.y, 2));
}
0
15.10.2018, 00:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2018, 00:08
Помогаю со студенческими работами здесь

Даны длины трех отрезков. Определить, можно ли из этих отрезков сложить треугольник
помогите ещё одну задачу)

Даны длины трех отрезков. Проверить, можно ли из заданных отрезков построить прямоугольный треугольник
Даны длины трех отрезков. Проверить, можно ли из заданных отрезков построить прямоугольный...

Даны длины трех отрезков. Проверить, можно ли из заданных отрезков построить прямоугольный треугольник.
Даны длины трех отрезков. Проверить, можно ли из заданных отрезков построить прямоугольный...

Даны длины трех отрезков. Выяснить, можно ли из этих отрезков составить произвольный треугольник
Даны длины трех отрезков. Выяснить, можно ли из этих отрезков составить произвольный треугольник....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru