Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 2
Регистрация: 02.11.2010
Сообщений: 103
1

Класс вектор

18.06.2012, 12:36. Просмотров 1653. Ответов 5
Метки нет (Все метки)

Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить конструктор без параметров, конструктор с параметром, конструктор с двумя параметрами. Конструктор без параметров выделяет место для одного элемента и инициализирует его в ноль. Конструктор с одним параметром, - размер вектора, - выделяет место и инициализирует номером в массиве, конструктор с двумя параметрами выделяет место (первый аргумент) и инициализирует вторым аргументом. Деструктор освобождает память. Определить функцию, которая присваивает элементу массива некоторое значение (параметр по умолчанию), функцию которая получает некоторый элемент массива. В переменную состояния устанавливать код ошибки, когда не хватает памяти, выходит за пределы массива. Определить функцию печати. Определить функции сложения, умножения, вычитания, которые производят эти арифметические операции с данными этого класса и встроенного float. Определить методы сравнения: больше, меньше или равно. Предусмотреть возможность подсчета числа объектов данного типа. Проверить работу этого класса.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2012, 12:36
Ответы с готовыми решениями:

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов
Привет! Задача следующая. Нужно реализовать класс "вектор" с конструкторами, которые позволяют...

Создать класс, полем которого является класс вектор
как это выглядит?

Класс вектор
Не могу разобраться с этим классом, прошу помощи и в объяснении(задание очень объёмное ещё),...

Класс вектор
Здраствуйте! Помогите организовать класс вектор, в котором есть методы позволяющие инициализировать...

5
386 / 212 / 102
Регистрация: 09.04.2012
Сообщений: 635
18.06.2012, 13:46 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
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <stdio.h>
 
class vector
{
 private:
  float* f;
  int sz;
  int state;
  static int n;
 
 public:
  vector()
  { 
   f = new float[1];
   f[0] = 0;
   sz = 1;
   state = 0;
   n++;
  };
 
  vector(int a)
  {
   f = new float[a];
   int i;
   for(i=0;i<a;i++)
    f[i] = i;
   sz = a;
   state = 0;
   n++;
  };
 
  vector(int a, float b)
  {
   f = new float[a];
   int i;
   for(i=0; i<a;i++)
    f[i] = b;
   sz = a;
   state = 0;
   n++;
  };
 
  ~vector()
  {
   delete []f;
  };
 
  void setv(int a, float b)
  {
   f[a] = b;
  };
 
  float getv(int a)
  {
   return f[a];
  };
 
  void print()
  {
   int i;
   for (i = 0; i < sz; i++)
    printf("%d ", this->f[i]); 
  };
 
  friend int operator>(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] > a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend int operator==(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] == a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend int operator<(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] < a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend void operator+(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] += a->f[i];
  };
 
  friend void operator-(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] -= a->f[i];
  };
 
  friend void operator*(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] *= a->f[i];
  };
 
 
  // число подсчета объектов данного типа
 
};
 
 
int main()
{
 
 
 return 0;
};
1
В астрале
Эксперт С++
8019 / 4776 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
18.06.2012, 13:52 3
asidorchenko, Первый вопрос - почему все операторы принимают указатель на вектор, вместо const ссылки?
Второй вопрос - зачем все операторы сделаны friend функциями, если это абсолютно не нужно?
1
программист С++
840 / 599 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
18.06.2012, 13:54 4
Цитата Сообщение от ForEveR Посмотреть сообщение
Второй вопрос - зачем все операторы сделаны friend функциями, если это абсолютно не нужно?
а где логика? "не нужно" это не объяснение
1
В астрале
Эксперт С++
8019 / 4776 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
18.06.2012, 13:55 5
sandye51, Зачем функцию делать friend, если ее можно сделать свободной?
2
программист С++
840 / 599 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
18.06.2012, 13:56 6
ForEveR, а, ну если в этом смысле, то согласен.
я почему-то подумал что имеете ввиду сделать ее методом класса
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2012, 13:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Класс Вектор
Решил написать свой класс вектор, приблизительно как в СТЛ. Сначала решил сделать каркас. Все...

Класс вектор
необходимо написать класс вектор (в геометрическом смысле в трёхмерном пространстве) ...

Класс Вектор
Здраствуйте! Может ли кто-нибудь помочь с объяснением проблемы , потому что я не знаю точно , что...

Класс Вектор
Помогите пожалуйста горит индевидуалка... Создать класс векторов поддерживающий следующие...


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

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

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