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

Реализовать класс - "Троичный вектор" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить расстояние удаляющихся друг от друга автомобилей http://www.cyberforum.ru/cpp-beginners/thread513178.html
Доброго времени суток! Помогите пожалуйста! Нужно решить задачи к зачету. Много пропустил, в том числе и С++. Задача: написать программу на С++, которая будет вычислять расстояние удаляющихся друг от друга автомобилей, если заданы их скорости V1 и V2, начальное расстояние S и время движения T. И то же, если только они будут двигаться навстречу друг другу. Заранее благодарен за помощь!
C++ Вывести рандомный массив, вставить в начало массива К рандомных чисел, и вывести результат Одномерный массив Вывести рэндомный массив с Н элементов, после этого вставить в начало массива К рэндомных чисел и вывести новый массив. http://www.cyberforum.ru/cpp-beginners/thread513143.html
C++ Создать класс "дерево"для представления арифметического выражения
Создать класс "дерево" для представления арифметического выражения, каждый из узлов которого содержит числа или знаки арифметических операций.
C++ Задача на списки и деревья.
Вот она: Написать программу, которая вводит с клавиатуры список целых чисел, строит инверсную копию списка, затем вводит с клавиатуры дерево поиска и считает количество положительных и отрицательных элементов дерева. :confusion:
C++ Вычислить значение заданной функции c++ http://www.cyberforum.ru/cpp-beginners/thread513123.html
Вычислить значение заданной функции y=f(x) на данном интервале с заданным шагом h. Вывод значений аргумента и результаты вычисления значений функции сделать в виде таблицы. Функция y={log}_{2}x+{2}^{x} Диапазон изменения аргумента x\epsilon Шаг изменения аргумента \Delta x=1/4
C++ Посчитать количество осадков для лет, среднегодовое и среднемесячное #include <stdio.h> #define TWLV 12 #define YRS 5 void main () { float rain = { {10.2, 8.1, 6.8, 4.2, 2.1, 1.8, 0.2, 0.3, 1.1, 2.3, 6.1, 7.4}, {9.2, 9.8, 4.4, 3.3, 2.2, 0.8, 0.4, 0.0,0.6, 1.7, 4.3, 5.2}, {6.6, 5.5, 3.8, 2.8, 1.6, 0.2, 0.0, 0.0,0.0, 1.3, 2.6, 4.2}, {4.3, 4.3, 4.3, 3.0, 2.0, 1.0, 0.2, 0.2,0.4, 2.4, 3.5, 6.6}, подробнее

Показать сообщение отдельно
Just_dake
1 / 1 / 1
Регистрация: 21.03.2011
Сообщений: 78
06.03.2012, 08:45     Реализовать класс - "Троичный вектор"
Здраствуйте форумчане!
Вот задали задачу: Реализовать класс «Троичный вектор» – Tvector размерности
n. Компоненты вектора принимают значения из множества {0,1, X}. Два троичных вектора tk = (t1^k,...,tn^k) и (t1^l,...,tn^l) называются ортогональными, если существует такое i, что ti^k, ti^l ∈ {0,1} ti^k ≠ ti^l. Операция пересечения не ортогональных векторов выполняется покомпонентно
по следующим правилам: 1⋂1=1⋂X=X⋂1=1, 0⋂0=0⋂X=X⋂0=0, X⋂X=X. Реализовать методы для проверки векторов на ортогональность, для пересечения не ортогональных векторов, сравнения векторов, подсчета числа компонент, равных Х. Осуществить те же действия над векторами с помощью перегруженных операций. Перегрузить операцию присваивания для данного класса. Выполнить тестирование класса, создав массив объектов.

Для начала хотелось бы понять, что есть "Троичный вектор" ?
Заранее спасибо!

Добавлено через 2 часа 44 минуты
Я тут почитал про компоненты троичного вектора: Элементы множества — цифровые знаки 0, 1 и 2 могут интерпретироваться как логические «ложь», «неизвестно» и «истина», в общем случае их смысл может быть любым.
Эээм, типо так:
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
#include <iostream>
 
using namespace std;
 
class vector {
      int sz;           //Г°Г*çìåð
      double* elem;     //ГіГЄГ*Г§Г*òåëü Г*Г* ýëåìåГ*ГІГ»
public:
       vector(int s):
                  sz(s), elem(new double[s]) {/**/}     //ГЄГ®Г*ñòðóêòîð
       ~vector() { delete[] elem; }                     //äåñòðóêòîð
       int size() const { return sz; }                  //ГІГҐГЄГіГ№ГЁГ© Г°Г*çìåð
       
       double get(int n) const { return elem[n]; }      //äîñòóï: Г·ГІГҐГ*ГЁГҐ
       double set(int n, double v) { elem[n] = v; }     //äîñòóï: Г§Г*ГЇГЁГ±Гј
};
 
int main() {
    vector v(5);
    srand(time(NULL));
    for(int i = 0; i < v.size(); ++i) {
            v.set(i, rand()%3);
            cout << "v[" << i << "]==" << v.get(i) << endl;
    }
 
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru