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

Класс вектор в n-мерном пространстве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество элементов массива, значение которых меньше 5 http://www.cyberforum.ru/cpp-beginners/thread22226.html
Дан массив размерностью 20 найти количество элементов значение каторых меньше 5. Вот что у меня вышло #include <iostream.h> #include <conio.h> main() { int a,i,h; for (i=0; i<=19; i++) ; {
C++ Решение системы линейных уравнений методом главных элементов программа на С++ решения системы линейных уравнений методом главных элементов http://www.cyberforum.ru/cpp-beginners/thread22192.html
C++ Вопрос про файловый ввод/вывод
Есть один глупый вопрос, но он очень меня интересует. Я учу С++ недавно. И вот дошел до файлового ввода вывода. В книге есть пример программы. Вот собственно и он: #include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv) { if (argc != 2) { cout << "введите <Имя_Файла>\n"; return 1;
Одномерный массив C++
Подскажите пожалуйста, как можнозаписать в массив информацию о высотах горных вершин (тоесть целые числа) и при этом разместить эти значения в алфавитном порядке по названиям вершин?
C++ Вывести на экран содержимое директории http://www.cyberforum.ru/cpp-beginners/thread22127.html
Простая задача поставила меня в тупик.:wall: Надо в досовское окно вывести содержание папки, Но я не знаю как. Не смогу в интернете найти не одной таковой статйи. В дайте код, фрагмент кода, или подсажыте команды. Заранее спасибо.
C++ Посимвольная обработка UTF8 строки Добрый день. пишу программу в С++ в Linux Ubuntu, необходимо обрабатывать строку введенную в UTF-8 (русские символы) Есть следующий участок: #include <ncurses.h> #include <unistd.h> #include <signal.h> подробнее

Показать сообщение отдельно
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782

Класс вектор в n-мерном пространстве - C++

02.02.2009, 01:04. Просмотров 4837. Ответов 10
Метки (Все метки)

Есть задача:
Разработать класс “вектор в n-мерном пространстве”. Определить:
• конструктор (или несколько, если необходимо)
• набор методов “get” и “set” ;
• операторы + и – для сложения и вычитания векторов с получением нового вектора (суммы или разности);
• оператора * для вычисления скалярного произведения двух векторов;
• оператор присваивания;
• оператор сравнения ==;
• оператор << для вывода в поток;

Вектор в n-мерном пространстве может иметь сколько угодно координат. Например, при сложении вектора a, с координатами (a1,a2,…,an) с вектором b (b1,b2,…,bn), вектор a+b будет иметь координаты (a1+b1,a2+b2,…,an+bn)

Пока, только в главной программе пользователь вводит координаты и те же координаты выводятся.
С операторами возникли проблемы. Может быть, кто-нибудь подскажет, как лучше сделать, например, сложение векторов?

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
 
class Vector
{
public:
    Vector ();           //Конструктор и деструктор
    ~Vector ();
    void SetAmount (int n);             //Методы для координат и необходимого количества
    void SetCoordinates (int value, int i); 
    int GetAmount () const;
    int GetCoordinates (int i) const;   
    
private:
    int itsAmount;                 //Нужное количество (вводится пользователем)
    int itsCoordinates [100];            //Координаты
};
 
Vector::Vector ()
{
}
Vector::~Vector ()
{
}
void Vector::SetAmount (int n)
{
    itsAmount = n;
}
void Vector::SetCoordinates (int value, int i)
{
    itsCoordinates [i] = value;
}
int Vector::GetAmount () const
{
    return itsAmount;
}
int Vector::GetCoordinates (int i) const
{
    return itsCoordinates [i];
}
 
int main ()
{
    setlocale (LC_ALL,".1251");
    Vector Vector1;
    Vector Vector2;
    Vector Vector3;
 
    int n;
    int i;
    int value;
    cout << "Введите количество координат первого вектора:\n";
    cin >> n;
    Vector1.SetAmount (n);
    cout << "Введите координаты вектора:\n";
    for (i = 0; i < Vector1.GetAmount (); i++)
    {
        cout << "Координата " << i + 1 << " = ";
        cin >> value;
        Vector1.SetCoordinates (value, i);
    }
    cout << endl;
 
    cout << "Введите количество координат второго вектора:\n";
    cin >> n;
    Vector2.SetAmount (n);
    cout << "Введите координаты вектора:\n";
    for (i = 0; i < Vector2.GetAmount (); i++)
    {
        cout << "Координата " << i + 1 << " = ";
        cin >> value;
        Vector2.SetCoordinates (value, i);
    }
    cout << endl << endl;
 
    cout << "\nВектор 1:\n";
    for (i = 0; i < Vector1.GetAmount (); i++)
    {
        cout << "Координата " << i + 1 << " = ";
        cout << Vector1.GetCoordinates (i) << endl;
    }
    cout << endl;
 
    cout << "Вектор 2:\n";
    for (i = 0; i < Vector2.GetAmount (); i++)
    {
        cout << "Координата " << i + 1 << " = ";
        cout << Vector2.GetCoordinates (i) << endl;
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru