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

В чем причина ошибки компиляции в программе для определения площади треугольника? - C++

Восстановить пароль Регистрация
 
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 15
28.01.2016, 11:08     В чем причина ошибки компиляции в программе для определения площади треугольника? #1
Вобщем, пишу программу на DevC++, которая по 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
#include<iostream>
#include<fstream>
#include<vector>
#include<cmath>
 
 using namespace std;
 
    struct point 
    {
        int x;
        int y;
     };
    
    point distance(point xf, point yf)
    {
    point m;
    m.x=xf.x-yf.x;
    m.y=xf.y-yf.y;
    return m;   
     } 
 
    int main()
    {
        int i;
        float out;
        vector <point> p(3);
        point a,b;
        for(i=0;i<3;i++) cin >> p[i].x >> p[i].y;
        a=distance(p[0],p[1]);
        b=distance(p[0],p[2]);
        
        out = abs(a.x*b.y-a.y*b.x)/2;
        cout << out;
     }
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 11:08     В чем причина ошибки компиляции в программе для определения площади треугольника?
Посмотрите здесь:

В чем причина ошибки? C++
В чем причина ошибки "error C2046: недопустимый вариант выбора"? C++
C++ В чем причина ошибки istream
C++ В чем причина ошибки extra qualification
В чем причина ошибки no match for? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
28.01.2016, 11:24     В чем причина ошибки компиляции в программе для определения площади треугольника? #2
Yellove,
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
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
 
using namespace std;
 
struct point
{
    int x;
    int y;
};
point distance(point xf, point yf)
{
    point m;
    m.x=xf.x-yf.x;
    m.y=xf.y-yf.y;
    return m;
}
int main()
{
    float out;
    vector<point> p;
    point a,b,tmp;
    for(int i=0;i<2;i++)
    {
        cin >> tmp.x >> tmp.y;
        p.push_back(tmp);
    }
    a = distance(p[0],p[1]);
    b = distance(p[0],p[2]);
    out = abs(a.x*b.y-a.y*b.x)/2;
    cout << out << endl;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.01.2016, 11:24     В чем причина ошибки компиляции в программе для определения площади треугольника? #3
Yellove, Уберите using namespace std или переименуйте функцию distance в другую, т.к. в std есть своя функция distance.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
28.01.2016, 11:51     В чем причина ошибки компиляции в программе для определения площади треугольника? #4
Yellove, вот теперь все работает как надо...

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
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
 
using namespace std;
 
struct point
{
    int x;
    int y;
};
point distance(point xf, point yf)
{
    point m;
    m.x = xf.x-yf.x;
    m.y = xf.y-yf.y;
    return m;
}
int main()
{
    float out;
    vector<point>p;
    point a,b,tmp;
    for(int i=0;i<3;i++)
    {
        cin >> tmp.x >> tmp.y;
        p.push_back(tmp);
    }
    a = distance(p[0],p[1]);
    b = distance(p[0],p[2]);
    out = abs(a.x*b.y-a.y*b.x)/2;
    cout << out << endl;
}
ForEveR, это вообще не играет никакой роли так как std::distance работает с итераторами!
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
28.01.2016, 12:09     В чем причина ошибки компиляции в программе для определения площади треугольника? #5
Цитата Сообщение от ThePlague Посмотреть сообщение
ForEveR, это вообще не играет никакой роли так как std::distance работает с итераторами!
Будете удивлены, но distance это шаблонная функция в stl.
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 15
28.01.2016, 12:16  [ТС]     В чем причина ошибки компиляции в программе для определения площади треугольника? #6
А что, собственно изменено? У меня не работает, та же проблема....
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
28.01.2016, 12:23     В чем причина ошибки компиляции в программе для определения площади треугольника? #7
Yellove, опишите подробнее что именно не работает?

у меня все работает без ошибок!
задавать координаты таким образом:

пример:

1 1
5 5
8 1

результат: 14
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.01.2016, 12:33     В чем причина ошибки компиляции в программе для определения площади треугольника? #8
Yellove, Ага-ага. http://en.cppreference.com/w/cpp/iterator/distance
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 15
28.01.2016, 13:01  [ТС]     В чем причина ошибки компиляции в программе для определения площади треугольника? #9
Вот ошибки:
Миниатюры
В чем причина ошибки компиляции в программе для определения площади треугольника?  
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.01.2016, 13:13     В чем причина ошибки компиляции в программе для определения площади треугольника? #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Yellove, Я же уже сказал в чем причина. По ошибкам это вполне можно понять.

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
#include<iostream>
#include<fstream>
#include<vector>
#include<cmath>
 
 using namespace std;
 
    struct point 
    {
        int x;
        int y;
     };
    
    point calc_distance(point xf, point yf)
    {
    point m;
    m.x=xf.x-yf.x;
    m.y=xf.y-yf.y;
    return m;   
     } 
 
    int main()
    {
        int i;
        float out;
        vector <point> p(3);
        point a,b;
        for(i=0;i<3;i++) cin >> p[i].x >> p[i].y;
        a=calc_distance(p[0],p[1]);
        b=calc_distance(p[0],p[2]);
        
        out = abs(a.x*b.y-a.y*b.x)/2;
        cout << out;
     }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2016, 09:22     В чем причина ошибки компиляции в программе для определения площади треугольника?
Еще ссылки по теме:

C++ Составить программу для определения площади заштрихованой фигуры
Исправить программу для определения площади заштрихованой фигуры C++
C++ В чем причина ошибки линковки в NetBeans (gcc 4.9)?

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

Или воспользуйтесь поиском по форуму:
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 15
29.01.2016, 09:22  [ТС]     В чем причина ошибки компиляции в программе для определения площади треугольника? #11
Спасибо! Но на школьном ПеКа не робит все равно xD
Yandex
Объявления
29.01.2016, 09:22     В чем причина ошибки компиляции в программе для определения площади треугольника?
Ответ Создать тему
Опции темы

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