Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2020, 08:53   #1
Falcome
Пользователь
 
Регистрация: 24.03.2020
Сообщений: 15
По умолчанию класс для работы с одномерными динамическими массивами

Не работает кот помогите починить пожалуйста.
Создать класс для работы с одномерными динамическими массивами значений типа unsigned int. Предусмотреть функции класса для выполнения таких операций:
- динамического присвоения;
- поэлементного сложения и вычитания;
- объединение двух массивов в один (конкатенация);
- упорядочение массива по увеличению и по уменьшению;
- консольный ввод и вывод массива.
Написать программу, которая доказывает правильность работы созданного класса

Код:
#include <iostream>
using namespace std;

class DynArray

{
    unsigned int* arr;
    int n;
public:
    DynArray(int count);
    DynArray(const DynArray& obj);

    ~DynArray();
    void show();
    DynArray& append(const DynArray& obj);
};


DynArray::DynArray(int count)
{
    n = count;
    arr = new unsigned int[n];
    for (int i = 0; i < n; i++)
        arr[i] = i;
}

DynArray::DynArray(const DynArray& obj)
{
    n = obj.n;
    arr = new unsigned int[n];
    for (int i = 0; i < n; i++)
        arr[i] = obj.arr[i];
}

DynArray::~DynArray() {
    delete[] arr;
}
void DynArray::show() {
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    cout << endl;
}

DynArray& DynArray::append(const DynArray& obj) {

    unsigned int* tmp = new unsigned int[n + obj.n];
    int i;
    for (i = 0; i < n; i++)
        tmp[i] = arr[i];
    for (i = 0; i < obj.n; i++)
        tmp[n + i] = obj.arr[i];
    delete[] arr;
    arr = tmp;
    n += obj.n;
    return *this;
}

int main() {
    DynArray obj1(5);
    DynArray obj2(3);


    obj1.show();
    obj2.show();
    obj1.append(obj2);
    obj1.show();

    system("pause");
    return 0;
}

DynArray DynArray::SumArray(const DynArray& obj1, const DynArray& obj2)
{
    int n_min = 0, n_max = 0;

    if (obj1.n < obj2.n)
    {
        n_min = obj1.n;
        m_max = obj2.n;
    }
    else
    {
        n_min = obj2.n;
        n_max = obj1.n;
    }

    unsigned int* tmp = new unsigned int[n_max];

    for (int m = 0; m < n_max; m++)
    {
        if (m < obj1.n)
        {
            if (m < obj2.n)
                tmp[m] = obj1.arr[m] - obj2.arr[m];
            else
                tmp[m] = obj1.arr[m];
        }
        else
            tmp[m] = -obj2.arr[m];
    }
    return DynArray(tmp, n_max)

}

//--------------------------еще один конструктор
DynArray::DynArray(unsigned int* a, int k)

{
    arr = a;
    n = k;
}
Falcome вне форума Ответить с цитированием
Старый 13.05.2020, 09:27   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,559
По умолчанию

Цитата:
Сообщение от Falcome Посмотреть сообщение
Не работает кот
Да, совсем обленился - мышей не ловит
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс для работы с одномерными динамическими массивами значений типа unsigned int. Предусмотреть функции класса для выполнения таких операций Falcome Помощь студентам 0 10.05.2020 16:54
Функции для работы с динамическими массивами iiunbreakableii Общие вопросы Delphi 8 17.07.2012 14:04
операции с одномерными массивами chainiksi Общие вопросы C/C++ 2 15.11.2011 17:19
Класс для работы с большими массивами xapiton Visual C++ 24 07.02.2011 18:18