0 / 0 / 0
Регистрация: 13.09.2019
Сообщений: 6
1

Вычислить периметр треугольника, заданного координатами своих вершин

13.09.2019, 16:33. Показов 4002. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, что каждая строчка делает. Спасибо.
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 <iostream>
#include <cmath>
#include <math.h>
 
using namespace std;
 
 
 
int fscr(int a, int b, int c, int d) {
    int k;
    k = sqrt(pow((a - b), 2) + pow((c - d), 2));
    return k;
}
 
int main() {
    int x1, x2, x3, y1, y2, y3, m, t, s, l;
    cout << "input x1 y1 -> ";
    cin >> x1 >> y1;
    cout << "input x2 y2 -> ";
    cin >> x2 >> y2;
    cout << "input x3 y3 -> ";
    cin >> x3 >> y3;
 
    m = fscr(x2, x1, y2, y1);
    t = fscr(x3, x1, y3, y1);
    s = fscr(x2, x3, y2, y3);
    
    
    if (m + t <= s){
        cout << "triangle doesn't exist" << endl;
    }
    else if (m + s <= t){
        cout << "triangle doesn't exist" << endl;
    }
    else if (s + t <= m){
        cout << "triangle doesn't exist" << endl;
    }
 
    else {
        cout << "1-st side -> " << m << endl;
        cout << "2-nd side -> " << t << endl;
        cout << "3-rd side -> " << s << endl;
        l = m + t + s;
        cout << "perimetr of triangle -> " << l << endl;
    }
 
    
    system("pause");
 
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2019, 16:33
Ответы с готовыми решениями:

Найти периметр треугольника, заданного координатами своих вершин
2) Найти периметр треугольника, заданного координатами своих вершин. (Определить функцию для...

Найти периметр треугольника, заданного координатами своих вершин
2. Составьте программу для решения задачи. Найдите периметр треугольника, заданного координатами...

Вычислить периметр треугольника, заданного координатами вершин
Добрый вечер. дано условие :&quot;Разработать функцию, вычисляющую длину стороны по координатам двух...

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

6
7430 / 5022 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.09.2019, 16:55 2
intic121, сначала нужно внести исправления, а потом комментировать. напишите условие задачи.
0
0 / 0 / 0
Регистрация: 13.09.2019
Сообщений: 6
13.09.2019, 17:15  [ТС] 3
Yetty, Разработать спецификации и написать функцию, вычисляющую расстояние между двумя точками на плоскости. Используя созданную функцию, вычислить периметр треугольника, заданного координатами своих вершин.
0
Модератор
2593 / 1697 / 913
Регистрация: 16.10.2013
Сообщений: 4,997
Записей в блоге: 14
13.09.2019, 17:17 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
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>
#include <math.h>
 
using namespace std;
 
 
// функция нахождения длины отрезка 
int fscr(int a, int b, int c, int d) {
    int k;
    k = sqrt(pow((a - b), 2) + pow((c - d), 2));
    return k;
}
 
 
int main() {
    int x1, x2, x3, y1, y2, y3, m, t, s, l;
 
// ввод координат трех точек треугольника
    cout << "input x1 y1 -> ";
    cin >> x1 >> y1;
    cout << "input x2 y2 -> ";
    cin >> x2 >> y2;
    cout << "input x3 y3 -> ";
    cin >> x3 >> y3;
 
// определение длин каждой из сторон треугольника по координатам точек
    m = fscr(x2, x1, y2, y1);
    t = fscr(x3, x1, y3, y1);
    s = fscr(x2, x3, y2, y3);
    
// проверка на корректность данных исходя из правила что сумма двух сторон треугольника не может быть меньше чем третья сторона
    if (m + t <= s){
        cout << "triangle doesn't exist" << endl;
    }
    else if (m + s <= t){
        cout << "triangle doesn't exist" << endl;
    }
    else if (s + t <= m){
        cout << "triangle doesn't exist" << endl;
    }
 
// вывод информации о длинах сторон треугольника
    else {
        cout << "1-st side -> " << m << endl;
        cout << "2-nd side -> " << t << endl;
        cout << "3-rd side -> " << s << endl;
        l = m + t + s; // периметр
        cout << "perimetr of triangle -> " << l << endl;
    }
 
    
    system("pause");
 
 
}
p.s. функция поиска длины отрезка должна возвращать не целое число а вещественное.
0
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
13.09.2019, 17:18 5
Цитата Сообщение от intic121 Посмотреть сообщение
Объясните пожалуйста, что каждая строчка делает
А что тут объяснять?
cin - ввод
cout - вывод
функция fscr - находит длину прямой по двум координатам в двухмерном пространстве
if (условие) если истина, делаем то-то
else иначе делаем то-то
system("pause") - пауза
0
Модератор
2593 / 1697 / 913
Регистрация: 16.10.2013
Сообщений: 4,997
Записей в блоге: 14
13.09.2019, 17:20 6
Цитата Сообщение от zss Посмотреть сообщение
Разве что, рассмотреть вырожденные случаи, когда точки лежат на одной прямой.
вам верно написали. Рассматривайте это после ввода координат, до поиска длин.
0
7430 / 5022 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
13.09.2019, 18:16 7
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 <iostream> // подключаем iostream
#include <cmath> // подключаем cmath (для работы sqrt и fabs)
using namespace std; // пространство имён
 
double Length (double xa, double ya, double xb, double yb ) // функция Length принимает 4 параметра - координаты двух точек 
{    
    return sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)); // функция Length возвращает вычисленное значение (расстояние между точками)    
}
 
int main() 
{
    double x1, x2, x3, y1, y2, y3, a, b, c, P, eps=1e-9; // объявление переменных 
// (малое число eps применяется при сравнении вещественных чисел) 
    cout << "input x1 y1 -> ";
    cin >> x1 >> y1; // ввод координат первой точки
    cout << "input x2 y2 -> ";
    cin >> x2 >> y2; // ввод координат второй точки
    cout << "input x3 y3 -> ";
    cin >> x3 >> y3; // ввод координат третьей точки
 
    a = Length(x1, y1, x2, y2); // вычисление длины стороны a
    b = Length(x1, y1, x3, y3); // вычисление длины стороны b 
    c = Length(x2, y2, x3, y3); // вычисление длины стороны c   
    
    if (fabs(a+b-c) < eps || fabs(a+c-b) < eps || fabs(b+c-a) < eps) // если длина одного отрезка равна сумме длин двух других
        cout << "triangle doesn't exist\n";   
    else // в противном случае (т.е. если треугольник существует)
    {
        cout << "1-st side -> " << a << "\n"; 
        cout << "2-nd side -> " << b << "\n";
        cout << "3-rd side -> " << c << "\n";
        P = a + b + c;
        cout << "perimetr of triangle -> " << P << "\n";
    } 
    
system("pause"); 
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
#include <iostream> 
#include <cmath> 
using namespace std; 
 
double Length (double xa, double ya, double xb, double yb ) 
{    
    return sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)); 
}
 
int main() 
{
    double x1, x2, x3, y1, y2, y3, a, b, c, P;   
    cout << "input x1 y1 -> ";
    cin >> x1 >> y1; 
    cout << "input x2 y2 -> ";
    cin >> x2 >> y2; 
    cout << "input x3 y3 -> ";
    cin >> x3 >> y3; 
 
    a = Length(x1, y1, x2, y2); 
    b = Length(x1, y1, x3, y3); 
    c = Length(x2, y2, x3, y3);    
    
    cout << "1-st side -> " << a << "\n"; 
    cout << "2-nd side -> " << b << "\n";
    cout << "3-rd side -> " << c << "\n";
    P = a + b + c;
    cout << "perimetr of triangle -> " << P << "\n";
    } 
    
system("pause"); 
return 0;
}
0
13.09.2019, 18:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2019, 18:16
Помогаю со студенческими работами здесь

Найти периметр и площадь треугольника, заданного координатами вершин
Треугольник задан координатами (x1, y1), (x2, y2), (x3, y3) своих вершин. Найти периметр и площадь...

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

Найти высоты треугольника, заданного координатами своих вершин
Найти высоты треугольника, заданного координатами своих вершин. Указать наименьшую из них. Для...

Вычисление периметра треугольника, заданного координатами своих вершин
Прошу помогите если можете. Треугольник заданный координатами x1, y1, x2, y2, x3, y3 своих...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru