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

Вычисление площади треугольника по координатам x,y - C++

Восстановить пароль Регистрация
 
starting
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 29
21.06.2013, 16:15     Вычисление площади треугольника по координатам x,y #1
Привет, задали написать программу вычислить площади треугольника по координатам..данные координат берутся из файла и конечный результат записывается в файл.. А с файлами у меня очень туго..(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2013, 16:15     Вычисление площади треугольника по координатам x,y
Посмотрите здесь:

C++ Вычисление площади равностороннего треугольника
C++ Определить процедуру вычисления площади треугольника по координатам его вершин
Вычисление площади треугольника при заданных параметрах C++
C++ Анализ треугольника и вычисление его площади
Вычисление площади треугольника по координатам концов отрезков с ++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
21.06.2013, 20:36     Вычисление площади треугольника по координатам x,y #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
72
#include <iostream>
#include <fstream>
#include <cmath>
#include <stdexcept>
 
struct Point
{
    explicit Point(int const x = 0, int const y = 0) : _x(x), _y(y) {}
    int _x, _y;
};
 
std::istream& operator>> (std::istream& ist, Point& rhs)
{
    return ist >> rhs._x >> rhs._y;
}
 
struct Triangle
{
    explicit Triangle(Point const& a = Point(), Point const& b = Point(), Point const& c = Point()) : _a(a), _b(b), _c(c) {}
 
    double perimeter() const
    {
        return sqrt(pow(_b._x - _a._x, 2) + pow(_b._y - _a._y, 2)) +
                sqrt(pow(_c._x - _b._x, 2) + pow(_c._y - _b._y, 2)) +
                sqrt(pow(_a._x - _c._x, 2) + pow(_a._y - _c._y, 2));
    }
 
    double area() const
    {
        double hp = perimeter() / 2;
        return sqrt(hp *
                    (hp - sqrt(pow(_b._x - _a._x, 2) + pow(_b._y - _a._y, 2))) *
                    (hp - sqrt(pow(_c._x - _b._x, 2) + pow(_c._y - _b._y, 2))) *
                    (hp - sqrt(pow(_a._x - _c._x, 2) + pow(_a._y - _c._y, 2))));
    }
    Point _a, _b, _c;
};
 
std::istream& operator>> (std::istream& ist, Triangle& rhs)
{
    ist >> rhs._a >> rhs._b >> rhs._c;
    if(!ist)
        throw std::runtime_error("operator>> failed");
    return ist;
}
 
int main()
{
    try
    {
        std::fstream fs("in.txt", std::ios::in);
        if(fs.is_open())
        {
            Triangle tr;
            fs >> tr;
            fs.clear();
            fs.close();
            fs.open("out.txt", std::ios::out);
            double area = tr.area();
            std::cout << area << "\n\n";
            fs << area << "\n\n";
            fs.close();
        }
        else
            std::cerr << "Unable to open input file\n";
    }
    catch(std::exception const& exc)
    {
        std::cerr << exc.what() << "\n\n";
    }
    return 0;
}
starting
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 29
21.06.2013, 21:58  [ТС]     Вычисление площади треугольника по координатам x,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
#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
 
 
{  double x1,x2,x3,y1,y2,y3, c,p,s,sg,pp,a,b;
  cout<<"x1="; cin>>x1;
  cout<<"y1="; cin>>y1;
  cout<<"x2="; cin>>x2;
  cout<<"y2="; cin>>y2;
  cout<<"x3="; cin>>x3;
  cout<<"y3="; cin>>y3;
 a = sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2))); cout<<" a=" <<a<<endl ;
 b = sqrt(((x1-x3)*(x1-x3))+((y1-y3)*(y1-y3))); cout<<" b=" <<b<<endl ;
 c = sqrt(((x2-x3)*(x2-x3))+((y2-y3)*(y2-y3))); cout<<" c=" <<c<<endl ;
 p = a+b+c;
 
pp=p/2;//считаем полупериметр
sg=sqrt(pp*(pp-a)*(pp- b )*(pp-c)); 
s=0.5*(a*b);
 cout<<"ploshad`=" <<s<<endl;
cout<<"ploshad` gerona=" <<sg<<endl;}
system("pause");
    return 0;
}
Thinker
21.06.2013, 22:02     Вычисление площади треугольника по координатам x,y
  #4

Не по теме:

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

Yandex
Объявления
21.06.2013, 22:02     Вычисление площади треугольника по координатам x,y
Ответ Создать тему
Опции темы

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