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

Класс векторов - C++

Восстановить пароль Регистрация
 
xxxyx
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 8
11.04.2014, 23:47     Класс векторов #1
Ребята, помогите, не очень получается.
Есть класс 2D-векторов, в private их к-ты: x и y. Предусмотрен конструктор с двумя параметрами (декартовы координаты вектора x и у), метод show, для вывод к-т вектора на консоль и метод, который к вектору добавляет другой вектор, сохраняя результат в первом векторе.
Нужно написать программу случайного блуждания на плоскости. Для этого создаётся вектор, координаты которого будут координатами блуждающего объекта. За нулевые принимаются координаты начального положения. На каждой итерации блуждающий объект делает шаг постоянного размера и случайного направления (равномерно распределенного в интервале 0 – 360 (в градусах)). Реализовать это блуждание как сложение вектора блуждающего объекта со случайным вектором заданного размера.
Потом необходимо выполнить серию из N=30 экспериментов с шагом блуждания 1 м. В каждой серии определить число шагов, которое пришлось сделать, чтобы удалиться на 50 м от начального положения. Рассчитать среднее число шагов и стандартное отклонение.
Вот, что, пока получилось:
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
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
 
 
using namespace std;
 
class Vector
{
    double x;
    double y;
public:
    Vector(double, double);
    Vector();
    void show(); 
    Vector operator+(const Vector); 
};
Vector::Vector() 
{  
    x = 0.; 
    y = 0.; 
} 
 
Vector::Vector(double xx, double yy) 
{  
    x = xx; 
    y = yy; 
} 
 
void Vector::show() 
{ 
    cout << "x = "<< x  << ", y = " << y << endl; 
} 
 
Vector Vector :: operator+(const Vector v) 
{ 
    return Vector(x+v.x, y+v.y);
}
 
void main()
{
    setlocale(LC_ALL, "Russian");
    srand((unsigned)time(NULL));
    double fi, xx, yy;
    double mn;
    cin >> mn;
    Vector v1(0.0, 0.0);
    fi=(rand()%628)/100;
    for(int i=0; i<30; i++)
    {
        xx=i*mn*cos(fi);
        yy=i*mn*sin(fi);
        if (sqrt(xx*xx+yy*yy) >= 50) cout << "Число шагов:" << i;
        Vector bluzd(xx,yy);
        Vector rezult=bluzd+v1;
        rezult.show();  
    }
    system ("pause");
}
Прошу помочь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 23:47     Класс векторов
Посмотрите здесь:

C++ Описать класс n-мерных векторов
Определить класс трехмерных векторов C++
Класс векторов на Dev-C++ C++
C++ Подскажите как составить класс объектов-векторов
C++ Разработать класс "вектор" и реализовать операцию векторного умножения векторов
C++ Написать класс векторов на плоскости
C++ Разработать класс "Вектор" и реализовать операцию векторного умножения векторов
Класс векторов. Как вывести значения? C++
Определить класс векторов размерности n C++
Передача комплексных чисел в производный класс для реализации векторов C++
C++ Найти длины исходных и результирующего векторов через класс
Создать класс векторов поддерживающий указанные операции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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