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

Два треугольника заданы координатами своих вершин. Вычислить их площади - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Кажгали
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.05.2012, 11:02     Два треугольника заданы координатами своих вершин. Вычислить их площади #1
Два треугольника заданы координатами своих вершин. Вычислить их площади по формуле S=1/2((Х2-Х1)(Y3-Y1)-(X3-X1)(Y2-Y1)) и определить, какой из них имеет большую площадь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 11:02     Два треугольника заданы координатами своих вершин. Вычислить их площади
Посмотрите здесь:

Два треугольника заданы координатами своих вершин A,B,C. Вычислить площадь треугольника и определить какой треугольник имеет большую площадь C++
Лежит ли точка М(xm;ym) внутри треугольника, заданного координатами своих вершин C++
C++ Создать класс произвольного треугольника, заданного координатами своих вершин
Треугольник задан координатами своих вершин. Составить программу для вычисления его площади. C++
C++ Найти внутрение углы треугольника,заданного координатами своих вершин на площаде.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 15:04     Два треугольника заданы координатами своих вершин. Вычислить их площади #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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
using namespace std;
 
struct MyPoint
{
    double x;
    double y;
};
 
//ÔóГ*êöèÿ äëÿ "áåçîïГ*Г±Г*îãî" ââîäГ* ïåðåìåГ*Г*îé
bool EnterValue(const char * sMSG, double &val);
//ÔóГ*êöèÿ äëÿ "áåçîïГ*Г±Г*îãî" ââîäГ* ïîëåé ñòðóêòóðû
bool EnterPoint(MyPoint &pt);
 
int main()
{
    //Îáúÿâëÿåì ñòóðêóòðû äëÿ òî÷åê
    MyPoint A1, B1, C1;//1-ГЈГ® òðåóãîëüГ*ГЁГЄГ*
    MyPoint A2, B2, C2;//2-ГЈГ® òðåóãîëüГ*ГЁГЄГ*
    double S1, S2;//ÏëîùГ*äè òðåóãîëüГ*èêîâ
    bool bInput = false;
    if(cout<<"Enter points of 1-st triangle\n")
    if(cout<<"POINT A:\n" && EnterPoint(A1))
    if(cout<<"POINT B:\n" && EnterPoint(B1))
    if(cout<<"POINT C:\n" && EnterPoint(C1))
    if(cout<<"Enter points of 2-ng triangle\n")
    if(cout<<"POINT A:\n" && EnterPoint(A2))
    if(cout<<"POINT B:\n" && EnterPoint(B2))
    if(cout<<"POINT C:\n" && EnterPoint(C2))
        bInput = true;
    if(bInput)
    {
        cout<<"S1 = "
            <<(S1 = 1.0/(2*((B1.x - A1.x)*(C1.y - A1.y) - (C1.x - A1.x)*(B1.y - A1.y))))
            <<endl;
        cout<<"S2 = "
            <<(S2 = 1.0/(2*((B2.x - A2.x)*(C2.y - A2.y) - (C2.x - A2.x)*(B2.y - A2.y))))
            <<endl;
        if(S1 < S2)
            cout<<"S1 < S2\n";
        else
            cout<<"S2 < S1\n";
    }
    else
        cout<<"Errors in input\n";
    system("pause");
    return 0;
}
 
bool EnterValue(const char * sMSG, double &val)
{
    bool bRet = true;
    cout<<sMSG;
    //Óñëîâèå Г*Г* ôèëüòðГ*öèþ Г*ГҐГўГҐГ°Г*îãî ââîäГ*
    if(!(cin>>val) || cin.get() != '\n')
        bRet = false;
    if(!bRet)
    {
        cin.clear();
        cin.sync();
    }
    return bRet;
}
 
bool EnterPoint(MyPoint &pt)
{
    bool bRet = true;
    if(bRet = EnterValue("x = ", pt.x))
       bRet = EnterValue("y = ", pt.y);
    return bRet;
}
Миниатюры
Два треугольника заданы координатами своих вершин. Вычислить их площади  
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.05.2012, 15:23     Два треугольника заданы координатами своих вершин. Вычислить их площади #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1.0/(2*((B1
Если не ошибаюсь, там именно 1/2, которая 0.5, а не 1/(2*площадь_параллелограмма).

Добавлено через 13 секунд
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
1.0/(2*((B1
Если не ошибаюсь, там именно 1/2, которая 0.5, а не 1/(2*площадь_параллелограмма).
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 15:30     Два треугольника заданы координатами своих вершин. Вычислить их площади #4

Не по теме:

Deviaphan, я уже не помню что это за формула, м.б площадь Герона или ещё что, как привёл ТС так и реализовал



Добавлено через 2 минуты
Ахахаа http://ru.wikipedia.org/wiki/Формула_Герона , да уж....
Получается в формуле вообще корень и длины сторон
Очередной раз убеждаюсь кроме того чтобы написать нужно ещё и математику заказчиков проверять
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.05.2012, 15:32     Два треугольника заданы координатами своих вершин. Вычислить их площади #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
как привёл ТС так и реализовал
А вот и не так. Смотри внимательнее.)

Добавлено через 2 минуты
Вообще, это просто "оптимизированное" скалярное умножение векторов. Произведение векторов равно площади образованного ими параллелограмма. Соответственно, площадь треугольника равна половине этого произведения.
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 15:35     Два треугольника заданы координатами своих вершин. Вычислить их площади #6
Deviaphan,
Цитата Сообщение от Deviaphan Посмотреть сообщение
А вот и не так. Смотри внимательнее.)
-

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
хахаа http://ru.wikipedia.org/wiki/Формула_Герона , да уж....
Получается в формуле вообще корень и длины сторон
Добавлено через 1 минуту
Кажгали, приведи нормальную формулу по которой считать, просто прикрепи изображение формулы, что там у тебя вообще не ясно. К примеру формулу Герона я с горем по полам помню а твою вообще ни разу не видел, вобщем чтобы мы тут все не спорили что ж те надо то сделай то о чём прошу.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.05.2012, 15:47     Два треугольника заданы координатами своих вершин. Вычислить их площади #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
-
1/2*3 ты как считать будешь?
Как (1/2)*3 или как 1/(2*3)?
Это я как бы намекаю тебе на приоритет операций.)
Кажгали
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.05.2012, 16:10  [ТС]     Два треугольника заданы координатами своих вершин. Вычислить их площади #8
Два треугольника заданы координатами своих вершин. Вычислить их площади по формуле S=0.5*((Х2-Х1)*(Y3-Y1)-(X3-X1)*(Y2-Y1)) и определить, какой из них имеет большую площадь.
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 16:19     Два треугольника заданы координатами своих вершин. Вычислить их площади #9
Цитата Сообщение от Кажгали Посмотреть сообщение
по формуле S=0.5*((Х2-Х1)*(Y3-Y1)-(X3-X1)*(Y2-Y1))
Исправь тогда мой код вот так
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
cout<<"S1 = "
* * * * * * <<(S1 = 0.5*((B1.x - A1.x)*(C1.y - A1.y) - (C1.x - A1.x)*(B1.y - A1.y)))
* * * * * * <<endl;
* * * * cout<<"S2 = "
* * * * * * <<(S2 = 0.5*((B2.x - A2.x)*(C2.y - A2.y) - (C2.x - A2.x)*(B2.y - A2.y)))
* * * * * * <<endl;
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
int main()
{
    //Îáúÿâëÿåì ñòóðêóòðû äëÿ òî÷åê
    MyPoint A1, B1, C1;//1-ГЈГ® òðåóãîëüГ*ГЁГЄГ*
    MyPoint A2, B2, C2;//2-ГЈГ® òðåóãîëüГ*ГЁГЄГ*
    double S1, S2;//ÏëîùГ*äè òðåóãîëüГ*èêîâ
    bool bInput = false;
    if(cout<<"Enter points of 1-st triangle\n")
    if(cout<<"POINT A:\n" && EnterPoint(A1))
    if(cout<<"POINT B:\n" && EnterPoint(B1))
    if(cout<<"POINT C:\n" && EnterPoint(C1))
    if(cout<<"Enter points of 2-ng triangle\n")
    if(cout<<"POINT A:\n" && EnterPoint(A2))
    if(cout<<"POINT B:\n" && EnterPoint(B2))
    if(cout<<"POINT C:\n" && EnterPoint(C2))
        bInput = true;
    if(bInput)
    {
        cout<<"S1 = "
            <<(S1 = 0.5*((B1.x - A1.x)*(C1.y - A1.y) - (C1.x - A1.x)*(B1.y - A1.y)))
            <<endl;
        cout<<"S2 = "
            <<(S2 = 0.5*((B2.x - A2.x)*(C2.y - A2.y) - (C2.x - A2.x)*(B2.y - A2.y)))
            <<endl;
        if(S1 < S2)
            cout<<"S1 < S2\n";
        else
            cout<<"S2 < S1\n";
    }
    else
        cout<<"Errors in input\n";
    system("pause");
    return 0;
}
Кажгали
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.05.2012, 16:30  [ТС]     Два треугольника заданы координатами своих вершин. Вычислить их площади #10
Дана квадратная вещественная матрица размерности n. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее

Добавлено через 23 секунды
спасибо!
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 16:37     Два треугольника заданы координатами своих вершин. Вычислить их площади #11
Цитата Сообщение от Кажгали Посмотреть сообщение
Дана квадратная вещественная матрица размерности n. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее
- матрица статическая или динамическая? Как вводим значения? Либо их генерируем случайным образом? Каков язык написания С/С++?Уточни эти моменты потому как без них я не знаю как именно тебе делать, а так задание простое до безобразия
Кажгали
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.05.2012, 16:48  [ТС]     Два треугольника заданы координатами своих вершин. Вычислить их площади #12
Динамическая, через #include "stdafx.h"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 17:05     Два треугольника заданы координатами своих вершин. Вычислить их площади
Еще ссылки по теме:

Два треугольника заданы координатами своих вершин. Найти сумму длин вписанных в них окружностей. Вычисления длины окружности, вписанной в треугольник C++
C++ Найти площадь треугольника заданного координатами своих вершин
C++ Функции: найти высоты треугольника, заданного координатами своих вершин

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
30.05.2012, 17:05     Два треугольника заданы координатами своих вершин. Вычислить их площади #13
Цитата Сообщение от Кажгали Посмотреть сообщение
Динамическая, через #include "stdafx.h"
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
// SqvMatrix.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iomanip>
#include <ctime>
using namespace std;
 
int main()
{
    int i, j;
    int n = 0;//Áåäóò ñîäåðæГ*ГІГј Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ*
    double **arr = NULL;//ÓêГ*Г§Г*òåëü Г*Г* Г¬Г*Г±Г±ГЁГў
    srand(time(0));//ÓñòГ*Г*Г*âëèâГ*ГҐГ¬ Г*Г*Г·Г*ëüГ*îå Г§Г*Г*Г·ГҐГ*ГЁГҐ ГЈГҐГ*ГҐГ°Г*òîðГ* ñëó÷ Г·ГЁГ±ГҐГ«
    cout<<"Enter n : ";cin>>n;
    arr = new double *[n];//ГЏГ*ìÿòü ïîä ГіГЄГ*Г§Г*òåëè Г*Г* ñòðîêè
    cout<<"Input matrix\n";
    for(i = 0; i < n; i++)
    {
        arr[i] = new double[n];//ГЏГ*ìÿòü ïîä ýëåìåГ*ГІГ» i-Г© ñòðîêè
        //ГЏГ*Г°Г*ëëåëüГ*Г® Г± ГЈГҐГ*ГҐГ°Г*öèåé ГЇГҐГ·Г*ГІГ*ГҐГ¬ ýëåìåГ*ГІГ» Г¬Г*òðèöû
        for(j = 0; j < n; j++)
        {
            //ГѓГҐГ*ððèðóåì ГўГҐГ№ГҐГ±ГІГўГҐГ*Г*ûå Г·ГЁГ±Г«Г* îò -10,0 äî 10,0
            cout<<setw(4)<<(arr[i][j] = (rand()%100 - 50)/10.0)<<" ";
        }
        cout<<endl;
    }
    cout<<"Matrix after placing zeros\n";
    //Òåïåðü Г§Г*Г*óëÿåì ýëåìåГ*ГІГ» âûøå ГЈГ«Г*ГўГ*îé äèГ*ГЈГ®Г*Г*ëè
    //ГЏГ*Г°Г*ëëåëüГ*Г® Г± Г§Г*Г*óëåГ*ГЁГҐГ¬ ГЇГҐГ·Г*ГІГ*ГҐГ¬ ýëåìåГ*ГІГ» Г¬Г*òðèöû
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(i <= j)
                arr[i][j] = 0;
            cout<<setw(4)<<arr[i][j];
        }
        cout<<endl;
    }
    //Г—ГЁГ±ГІГЁГ¬ ГЇГ*ìÿòü
    for(i = n - 1; 0 < i; i--)
        delete [] arr[i];
    delete [] arr;
    system("pause");
    return 0;
}
Миниатюры
Два треугольника заданы координатами своих вершин. Вычислить их площади  
Yandex
Объявления
30.05.2012, 17:05     Два треугольника заданы координатами своих вершин. Вычислить их площади
Ответ Создать тему
Опции темы

Текущее время: 21:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru