1

Тема: Шаблон, контейнерний клас та параметричний масив.

Допоможіть будь ласка закінчити завдання. Я код зробила а от як це перетворити в шаблон не знаю
Контейнерний клас описує та забезпечує набір дій над даними параметризованого масиву, розмірність якого визначається під час роботи програми. Усі обчислення та перетворення повинні бути реалізовані у вигляді методів класу.В одновимірному масиві елементів, обчислити суму модулів елементів, які розташовані після першого додатного елемента.

#include <iostream>
#include <string>
#include "cmath"
using namespace std;
int main ()
{
    int size = 0;
    char i, pos;
    unsigned int sum = 0;
    cout << "Enter array size:";
    cin >> size;
    
    int *arr = new int [size];
    cout << "Enter element of array:" << endl;
    for (int i = 0; i<size; i++)
    {
        cin >> arr[i];
    }
    for (int i=0; i<size; i++)
    {
        cout << " " << arr[i];
    }
    cout << endl;
    for (i=0; i < size; i++)
    {
        if (arr[i] > 0)
        {
            pos = i;
            break;
        }
    }
    for (i = pos + 1; i < size; i++) sum += abs(arr[i]);
    cout << "Sum = " << sum << endl;
    delete [] arr;
    return 0;
    
}

2

Re: Шаблон, контейнерний клас та параметричний масив.

А де у вас тут клас?

3

Re: Шаблон, контейнерний клас та параметричний масив.

adziri, в цьому і вся проблема, що його нема

4

Re: Шаблон, контейнерний клас та параметричний масив.

Винесіть ваш код у клас самі, а ми вже з додаванням шаблонів допоможемо :)
Хоча в завданні про шаблони не сказано..

5

Re: Шаблон, контейнерний клас та параметричний масив.

adziri написав:

А де у вас тут клас?

я ніби знаю що таке клас і вже працювала з ним, але все ж не знаю як правильно оформити шаблонний клас.
Тому тут в мене тільки виконання обчислень.

6

Re: Шаблон, контейнерний клас та параметричний масив.

wynnyk.marta написав:
adziri написав:

А де у вас тут клас?

я ніби знаю що таке клас і вже працювала з ним, але все ж не знаю як правильно оформити шаблонний клас.
Тому тут в мене тільки виконання обчислень.

Я ж вам кажу, зробіть як знаєте, звичайним класом,
а потім я вам допоможу його переробити у шаблонний.

Подякували: leofun011

7

Re: Шаблон, контейнерний клас та параметричний масив.

https://ru.wikipedia.org/wiki/Шаблоны_C++
приклад використання класу з шаблоном на основі даних вікіпедії, а на рахунок вашої задачи поки що не знаю

Прихований текст
template <typename T, typename A, typename B, typename C>
class TempClass
{
   public:
   T x;
   A y;
   B z;
   C v;
   void init(T x_in, A y_in, B z_in, C v_in) {x=x_in; y=y_in; z=z_in; v=v_in;}
};
int main()
{
TempClass <int, double, char, float> tc;
/*Тепер змінна x буде типу double, змінна y типу double, змінна z типу char і змінна v типу float; замість T, A, B, C підставляється те що вказане в скобках <>*/
tc.x=778;
tc.y=765678.87657;
tc.z='O';
tc.float=7.8;
tc.init(667, 87786.867786, 'I', 9.8);
/*до змінних в класі звертаються через крапку після змінної, точно так же як і до функцій в класі*/
return 0;
}

ще одне

template <size_t len, typename T>
class TempClass
{
   public:
   T x[len];
};
int main()
{
TempClass <100, int> tc;
for (int i=0; i<100; i++) tc.x[i]=i;
return 0;
}

ну я так по крайній мірі зрозумів з вікіпедії, щоправда, мені здалося, що там в вікі було декілька помилок в кодах.

8

Re: Шаблон, контейнерний клас та параметричний масив.

Не Зелений написав:

https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B
приклад використання класу з шаблоном на основі даних вікіпедії, а на рахунок вашої задачи поки що не знаю

Прихований текст
template <typename T, typename A, typename B, typename C>
class TempClass
{
   public:
   T x;
   A y;
   B z;
   C v;
   void init(T x_in, A y_in, B z_in, C v_in) {x=x_in; y=y_in; z=z_in; v=v_in;}
};
int main()
{
TempClass <int, double, char, float> tc;
/*Тепер змінна x буде типу double, змінна y типу double, змінна z типу char і змінна v типу float; замість T, A, B, C підставляється те що вказане в скобках <>*/
tc.x=778;
tc.y=765678.87657;
tc.z='O';
tc.float=7.8;
tc.init(667, 87786.867786, 'I', 9.8);
/*до змінних в класі звертаються через крапку після змінної, точно так же як і до функцій в класі*/
return 0;
}

ще одне

template <size_t len, typename T>
class TempClass
{
   public:
   T x[len];
};
int main()
{
TempClass <100, int> tc;
for (int i=0; i<100; i++) tc.x[i]=i;
return 0;
}

ну я так по крайній мірі зрозумів з вікіпедії, щоправда, мені здалося, що там в вікі було декілька помилок в кодах.

самі любите лайно жерти - жеріть, але приносити його в чисте, публічне місце, і пропонувати людям...

Подякували: leofun01, varkon, Fox3