Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Алексей Близнюк
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 33
Завершенные тесты: 1
1

Найти длины отрезков концами которых являются координаты заданных точек

26.12.2018, 16:59. Просмотров 854. Ответов 4

Помогите пожалуйста с выполнением задания: Даны координаты трёх точек. Найти длины отрезков,концами которых являются эти точки и если из этих отрезков можно составить треугольник,найти периметр.

Я пробовал написать код:
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
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
double length(int x1,int y1, int x2,int y2)
{
    double length;
    return sqrt((x2-x1) *(x2 - x1) + (y2-y1)*(y2-y1));
}
 
int main()
{
    setlocale(0, "");
    double a,b,c;
    double x1, y1, x2, y2, x3, y3;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    double ras(double x1, double y1, double x2,double y2)
    {
        return sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2);
    }
    a = ras(x1, y1, x2, y2);
    b = ras(x2, y2, x3, y3);
    c = ras(x1, y1, x3, y3);
    cout << "Длина отрезка:" << sqrt((x2 - x1) *(x2 - x1) + (y2 - y1)*(y2 - y1) + (x3 - y3)*(x3 - y3)) << endl;
    if ((a+b>c && (a+c>b) && (c+b>a)))
    {
        int P;
        P = a + b + c;
        cout << "P=" << P << endl;
    }
    else cout << "Не существует"<< endl;
    system("pause");
}
Но у меня получается бред. Помогите скорректировать программу. Буду благодарен.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2018, 16:59
Ответы с готовыми решениями:

В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков
Помогите написать программу. В массивах вещественных чисел X и Y записаны координаты точек на...

На прямой своими концами заданы N отрезков. Найти точку принадлежащую максимальному числу отрезков
Помогите пожалуйста понять, что от меня хотят и какой(как) разработать алгоритм для решения этой...

Найти в файле слова длины которых являются числами Фибоначчи
Добрый день,подскажите как написать прогу с++ естественно. В файле написаны слова,вывести на экран...

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

Есть ли у кого похожий алгоритм: распределения отрезков разной длины внутри отрезков фиксированной длины?
Народ помогите мне с программой распределения отрезков разной длины внутри отрезков фиксированной...

4
Button123
-41 / 13 / 12
Регистрация: 20.03.2017
Сообщений: 182
26.12.2018, 17:47 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    int x1 = 0;
    int y1 = 0;
 
    int x2 = 0;
    int y2 = 0;
 
    int x3 = 0;
    int y3 = 0;
 
    int l1 = 0; 
    int l2 = 0; 
    int l3 = 0; 
 
    int s = 0; 
    
    cout << "Point 1(x):" << endl;
    cin >> x1;
 
    cout << "Point 1(y):" << endl;
    cin >> y1;
    
    cout << "Point 2(x):" << endl;
    cin >> x2;
 
    cout << "Point 2(y):" << endl;
    cin >> y2;
 
    cout << "Point 3(x):" << endl;
    cin >> x3;
 
    cout << "Point 3(y):" << endl;
    cin >> y3;
 
    l1 = ((x2 - x1)^2+(y2-y1)^2)^(1/2);
    l2 = ((x2 - x3)^2+(y2-y3)^2)^(1/2);
    l3 = ((x1 - x3)^2+(y1-y3)^2)^(1/2);
 
    if(l1 < l2 + l3 && l2 < l1 + l3 && l3 < l1 + l2){
        int p = 0; 
        p = (l1 + l2 + l3) / 2;
        float y = p * (p - l1) * (p - l2) * (p - l3);
        s = sqrt(y); 
        cout << "S = " << s; 
    } else {
        cout << "Cannot create a triangle" << endl;
    }
    system("pause");
    return 0;
}
0
Алексей Близнюк
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 33
Завершенные тесты: 1
26.12.2018, 18:21  [ТС] 3
Можете рассказать,что вы делали? Мне просто интересно
0
valen10
Параллельный Кот
1260 / 530 / 209
Регистрация: 25.03.2016
Сообщений: 1,186
Завершенные тесты: 1
26.12.2018, 18:48 4
Лучший ответ Сообщение было отмечено Алексей Близнюк как решение

Решение

Алексей Близнюк, у вас уже создана функция для вычисления длины отрезка, используйте ее в программе.

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
#include <iostream>
#include <cmath>
using namespace std;
 
double length(double x1, double y1, double x2, double y2) {
    return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
 
int main() {
    double a, b, c;
    double x1, y1, x2, y2, x3, y3;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
 
    a = length(x1, y1, x2, y2);
    c = length(x2, y2, x3, y3);
    b = length(x1, y1, x3, y3);
 
    cout << "Длина отрезка (A,B):" << a << endl;
    cout << "Длина отрезка (B,C):" << b << endl;
    cout << "Длина отрезка (A,C):" << c << endl;
 
    if ((a + b > c && (a + c > b) && (c + b > a)))
    {
        double P;
        P = a + b + c;
        cout << "P = " << P << endl;
    }
    else {
        cout << "Треугольник не существует"<< endl;
    }
}
Добавлено через 13 минут
Button123, прежде чем показывать такое, хорошо бы самому разобраться с тем, как работает предлагаемый вами код. Длина отрезка совсем не обязана быть целочисленной, оператор ^ не возводит число в степень, результат сложения и умножения целых чисел - число целое, и ТС просил вычислить периметр, а не площадь.
1
Button123
-41 / 13 / 12
Регистрация: 20.03.2017
Сообщений: 182
26.12.2018, 18:56 5
Цитата Сообщение от valen10 Посмотреть сообщение
прежде чем показывать такое, хорошо бы самому разобраться с тем, как работает предлагаемый вами код. Длина отрезка совсем не обязана быть целочисленной, оператор ^ не возводит число в степень, результат сложения и умножения целых чисел - число целое, и ТС просил вычислить периметр, а не площадь.
Ох поспешил я, нужно было перепроверить, ошибки понял
0
26.12.2018, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2018, 18:56

Оператор for. Вывести координаты и длины отрезков на числовой оси
Дано целое число N(&gt;1) и две вещественные точки на числовой оси: A,B (A&lt;B). Отрезок разбит на N...

Определить, можно ли из отрезков, длины которых равны заданным числам, построить прямоугольник
Заданы 4 вещественных числа. Определить, можно ли из отрезков, длины которых равны заданным числам,...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru