Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
Sk
5 / 5 / 1
Регистрация: 10.03.2016
Сообщений: 304
1

Создать абстрактный тип данных - класс вектор, который имеет указатель на long, число элементов и переменную состояния

05.05.2013, 14:00. Просмотров 4355. Ответов 1
Метки нет (Все метки)

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

Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число элементов
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на short и число...

Создать абстрактный тип данных (структура) — вектор, который имеет указатель на int и число элементов
Создать абстрактный тип данных (структура) - вектор, который имеет указатель на int и число...

Создать класс вектор, который имеет указатель на double
Создать абстрактный тип данных - класс вектор, который имеет указатель на double, число элементов и...

Создать абстрактный тип данных-класс вектор
Создать абстрактный тип данных-класс вектор, который имеет указатель на long, число элементов и...

1
3050 / 1455 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
05.05.2013, 15:33 2
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от AnGie Посмотреть сообщение
инициализирует номером в массиве
Так делать не стоит, конечно, ну да ладно.
Цитата Сообщение от AnGie Посмотреть сообщение
В переменную состояния устанавливать код ошибки, когда не хватает памяти, выходит за пределы массива.
Это надо делать исключениями, а не "переменными состояния".

Ну, как-то так.
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
#include <iostream>
#include <stdexcept>
 
class VectorOfLong {
 public:
  VectorOfLong() : size(1), data(new long int[size]()) {}
  VectorOfLong(size_t size) : size(size), data(new long int[size]) {
    for (size_t i = 0; i < size; ++i) {
      data[i] = i;
    }
  }
  VectorOfLong(int size, long int initializer) : size(size),
    data(new long int[size]) {
    setAllTo(initializer);
  }
  VectorOfLong(const VectorOfLong &other) {
    copyFrom(other);
  }
  VectorOfLong &operator=(const VectorOfLong &other) {
    return copyFrom(other);
  }
  virtual ~VectorOfLong() {
    delete [] data;
  }
  long int &get(size_t position) {
    if (position >= size) {
      throw std::out_of_range("index went out of range");
    }
    return data[position];
  }
  const long int &get(size_t position) const {
    if (position >= size) {
      throw std::out_of_range("index went out of range");
    }
    return data[position];
  }
  void set(size_t position) {
    if (position >= size) {
      throw std::out_of_range("index went out of range");
    }
    data[position] = 0;
  }
  void set(size_t position, long int value) {
    if (position >= size) {
      throw std::out_of_range("index went out of range");
    }
    data[position] = value;
  }
  size_t getSize() const { return size; }
  void setAllTo(long int value) {
    for (size_t i = 0; i < size; ++i) {
      data[i] = value;
    }
  }
  VectorOfLong &copyFrom(const VectorOfLong &other) {
    if (this != &other) {
      size = other.size;
      delete [] data;
      data = new long int[size];
      for (size_t i = 0; i < size; ++i) {
        data[i] = other.data[i];
      }
    }
    return *this;
  }
  static size_t getMaximumSize() { return static_cast<size_t>(-1); }
 private:
  size_t size;
  long int *data;
};
 
std::ostream &operator<<(std::ostream &stream, const VectorOfLong &v) {
  stream << "[";
  for (size_t i = 0; i < v.getSize(); ++i) {
    stream << v.get(i);
    if (i < v.getSize() - 1) stream << ", ";
  }
  return stream << "]";
}
 
int main(int argc, char *argv[]) {
  VectorOfLong v(10);
  v.set(9);
  v.set(3, 4);
  std::cout << v << std::endl;
  return 0;
}
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2013, 15:33

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

Создать абстрактный тип данных - класс вектор
Создать абстрактный тип данных - класс вектор (динамический массив), который имеет указатель на...

Создать абстрактный тип данных - класс вектор
Доброго времени суток! Тут задачку такую не хилую подогнали. Нужна помощь опытных программистов. ...

Создать класс вектор, содержащий указатель на unsigned long, размерность вектора
Создать класс вектор, содержащий указатель на unsigned long, размерность вектора. Класс имеет...

Создать класс, который имеет параметризованный метод, который рассчитывает, простое ли число
Создать класс, который имеет параметризованный метод, который рассчитывает, простое ли число.

Создать класс "автомобиль", который имеет марку (указатель на строку)
Помогите с заданием пожалуйста! Я не прошу все сделать за меня но помогите создать клас. Спасибо ...

Скопировать объект, на который ссылается указатель на абстрактный класс
Доброго времени суток. У меня такое задание: написать программу символьного дифференцирования, т.е....


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

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

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