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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 16
#1

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

28.01.2016, 11:08. Просмотров 222. Ответов 10
Метки нет (Все метки)

Вобщем, пишу программу на 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;
     }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 11:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чем причина ошибки компиляции в программе для определения площади треугольника? (C++):

В чем причина ошибки? - C++
Код int main() { char arr; scanf(&quot;%s %s&quot;, &amp;arr, &amp;arr); printf(&quot;%s\n\n&quot;, arr);

В чем причина ошибки? - C++
помогите разобраться почему выходит ошибка? #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; ...

В чем причина ошибки istream - C++
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

В чем причина ошибки no match for? - C++
Видает ошибку no match for 'operator=' in 'C = RyadokIdentifier::operator+(const RyadokIdentifier&amp;)((*(const RyadokIdentifier*)(&amp; B)))' ...

В чем причина ошибки extra qualification - C++
Видает ошибку extra qualification 'RyadokIdentifier::' on member 'Lowercase' в чем причина #include &lt;iostream&gt; #include &lt;string&gt; ...

В чем причина ошибки линковки в NetBeans (gcc 4.9)? - C++
Товарищи! помогите пожалуйста!! Подскажите новичку в С\С++ где собака зарылась: ОС Debian IDE NetBeans компилятор gcc 4.9 При...

10
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
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;
}
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
28.01.2016, 11:24 #3
Yellove, Уберите using namespace std или переименуйте функцию distance в другую, т.к. в std есть своя функция distance.
0
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
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 работает с итераторами!
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,117
Записей в блоге: 5
Завершенные тесты: 1
28.01.2016, 12:09 #5
Цитата Сообщение от ThePlague Посмотреть сообщение
ForEveR, это вообще не играет никакой роли так как std::distance работает с итераторами!
Будете удивлены, но distance это шаблонная функция в stl.
0
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 16
28.01.2016, 12:16  [ТС] #6
А что, собственно изменено? У меня не работает, та же проблема....
0
ThePlague
101 / 101 / 61
Регистрация: 30.06.2015
Сообщений: 272
28.01.2016, 12:23 #7
Yellove, опишите подробнее что именно не работает?

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

пример:

1 1
5 5
8 1

результат: 14
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
28.01.2016, 12:33 #8
Yellove, Ага-ага. http://en.cppreference.com/w/cpp/iterator/distance
0
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 16
28.01.2016, 13:01  [ТС] #9
Вот ошибки:
0
Миниатюры
В чем причина ошибки компиляции в программе для определения площади треугольника?  
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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;
     }
1
Yellove
0 / 0 / 0
Регистрация: 17.06.2015
Сообщений: 16
29.01.2016, 09:22  [ТС] #11
Спасибо! Но на школьном ПеКа не робит все равно xD
0
29.01.2016, 09:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2016, 09:22
Привет! Вот еще темы с ответами:

В чем причина ошибки "error C2046: недопустимый вариант выбора"? - C++
Ошибка 1 error C2046: недопустимый вариант выбора c:\users\влад\documents\visual studio 2010\projects\dz 14.08.14\dz 14.08.14\link.cpp 45 ...

Составить программу для определения площади заштрихованой фигуры - C++
Добрый день! Помогите написать программу в C++. Вот такие условия: Составить программу для определения методом Монте-Карло площади...

Исправить программу для определения площади заштрихованой фигуры - C++
Добрый день! Помогите исправить программу в C++. Вот такие условия: Составить программу для определения методом Монте-Карло площади...

Разработать функцию для определения и расчёта площади пятиугольника. По координатным точкам. (х1,у1) и т.д - C++
Даны вещественные числа х1,у1,х2,у2...х5,у5. Найти площадь пятиугольника, вершины которого имеют координаты (х1.у2) и т.д. Разработать...


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

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

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