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

Классы - C++

Войти
Регистрация
Восстановить пароль
 
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
10.09.2011, 13:03     Классы #1
Написал программу расстояние между двумя точками с использованием классов. Во втором хочу использовать элемент первого. Не работает. Как это сделать?
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
#include <iostream>
#include <cmath>
using namespace std;
 
class point // класс описывающий точку и вектор
{
 public:
  double x,y;
};
 
class vector
{
 public:
  point vec_coord(point a, point b)
   {
    point c;
    с.x=b.x-a.x;
    с.y=b.y-a.y;
    return c;
   }
  double distantion(point a, point b)
   {
    point c=vec_coord(a,b);
    return sqrt(c.x*c.x+c.y*c.y);
   }
};
 
int main()
{
 point a,b;
 vector res;
 cin >> a.x >> a.y >> b.x >> b.y;
 cout << res.distantion(a,b);
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 13:03     Классы
Посмотрите здесь:

классы C++
C++ Классы
C++ классы
Классы C++
C++ Классы
Классы в си++ C++
классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nadinka______
1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
10.09.2011, 13:25     Классы #2
http://www.cyberguru.ru/programming/...ib-page12.html

Посмотри здесь
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
10.09.2011, 13:28  [ТС]     Классы #3
А можно нагляднее этот код поменять, там боюсь ничего не пойму...
Nadinka______
1 / 1 / 0
Регистрация: 12.08.2011
Сообщений: 29
10.09.2011, 13:48     Классы #4
set.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
#include <set>          
#include <iostream>   
#include <windows.h>    
 
using namespace std;    
 
 
 
class stl_point
{
public:
    double x, y;    
    stl_point(double tx=0, double ty=0)
    {
        x = tx;
        y = ty;
    }
};
 
 
 
bool operator<(stl_point first, stl_point second)
{
    return first.x < second.x;
}
set.cpp

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
#include "set_test.h" 
 
set <stl_point> set_exact; 
 
int main(void)
{
    int x, y;
 
    while(1)
    {
        
 
        cout << "Abscissa: ";
        cin >> x;
        cout << "Ordinate: ";
        cin >> y;
 
        
 
 
        if(!set_exact.insert(stl_point(x, y)).second)
            cout << "not inserted" << endl << endl;
        else
            cout << "success" << endl << endl;
    }
    return 0;
}
Добавлено через 29 секунд
set.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
#include <set>          
#include <iostream>   
#include <windows.h>    
 
using namespace std;    
 
 
 
class stl_point
{
public:
    double x, y;    
    stl_point(double tx=0, double ty=0)
    {
        x = tx;
        y = ty;
    }
};
 
 
 
bool operator<(stl_point first, stl_point second)
{
    return first.x < second.x;
}
set.cpp

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
#include "set.h" 
 
set <stl_point> set_exact; 
 
int main(void)
{
    int x, y;
 
    while(1)
    {
        
 
        cout << "Abscissa: ";
        cin >> x;
        cout << "Ordinate: ";
        cin >> y;
 
        
 
 
        if(!set_exact.insert(stl_point(x, y)).second)
            cout << "not inserted" << endl << endl;
        else
            cout << "success" << endl << endl;
    }
    return 0;
}
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
10.09.2011, 13:56     Классы #5
На acmp задачу на расстояние решал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
#include <math.h>
int main()
{
    double x1,y1,x2,y2,d;
    std:: ifstream ifs ("input.txt");
    ifs >> x1 >> y1 >> x2 >> y2;
    ifs.close();
    d=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
    std:: ofstream ofs ("output.txt");
    ofs << std::fixed << d;
    ofs.close();
    return 0;
}
TheAthlete
 Аватар для TheAthlete
151 / 151 / 12
Регистрация: 31.08.2010
Сообщений: 529
10.09.2011, 13:58     Классы #6
Все вроде работает, только ошибка была, там в 17 и 18 строках символ 'c' был в русской расладке набран, подправленный вариант программы вот:

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
#include <iostream>
#include <cmath>
 
using std::cout;
using std::cin;
 
// структура описывающая точку
struct point {
  double x, y;
};
 
// класс описывающий вектор
class vector {
  public:
    point vec_coord(point a, point b) {
      c.x = b.x - a.x;
      c.y = b.y - a.y;
      return c;
    }
    double distantion(point a, point b) {
      c = vec_coord(a, b);
      return sqrt(c.x * c.x + c.y * c.y);
    }
  private:
    point c;
};
 
int main()
{
  point a, b;
  vector res;
  cin >> a.x >> a.y >> b.x >> b.y;
  cout << res.distantion(a, b);
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2011, 13:59     Классы
Еще ссылки по теме:

C++ Классы
C++ Классы С++
Классы C++
Классы в С++ C++

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

Или воспользуйтесь поиском по форуму:
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
10.09.2011, 13:59  [ТС]     Классы #7
всем спасибо, оказывается всё у меня правильно, я просто транслит поменял вместо с написал с на русском, вот он и говорил что такого элемента не найдено...
Yandex
Объявления
10.09.2011, 13:59     Классы
Ответ Создать тему
Опции темы

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