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

Класс с массивом чисел - C++

Восстановить пароль Регистрация
 
Leew
 Аватар для Leew
1 / 1 / 0
Регистрация: 12.10.2012
Сообщений: 29
14.10.2012, 15:43     Класс с массивом чисел #1
Нужно создать класс, который будет состоять из 10 чисел. Определить функцию для вычисления среднего арефметического, минимума и максимума с использованием указателя this.

Подскажите, как нужно описать этот масив в класссе и потом передать эти 10 чисел функции, которая вычислит нужное, и где, и как нужно использовать указатель this.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 15:43     Класс с массивом чисел
Посмотрите здесь:

C++ Дополнить класс динамическим массивом
Создать класс для работы с двумерным массивом вещественных чисел C++
C++ Создать класс для роботы с одномерным массивом
Создать класс для работы с двумерным динамическим массивом чисел C++
Создать класс для работы с двумерным массивом вещественных чисел. В двоичной матрице найти совпадающие строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.10.2012, 17:14     Класс с массивом чисел #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
#include <iostream>
#include <cmath>
 
using namespace std;
 
class CMyVector{
public:
    explicit CMyVector(const int *arr, const int size);
    int avg() const;
    int min() const;
    int max() const;
    ~CMyVector();
private:
    int *arr;
    int size;
};
 
CMyVector::CMyVector(const int *a, const int n): arr(0), size(n){
    arr = new int [size];
    memcpy(arr, a, sizeof(int) * size);
};
 
CMyVector::~CMyVector(){
    if(arr) delete [] arr;
};
 
int CMyVector::avg() const {
    int sum = 0;
    for (int i = 0; i < this->size; i++)
    {
        sum += this->arr[i];
    }
 
    return sum / size;
};
 
int CMyVector::max() const {
    int max = this->arr[0];
    for (int i = 0; i < this->size; i++)
    {
        if(this->arr[i] > max) max = this->arr[i];
    }
 
    return max;
};
 
 
int CMyVector::min() const {
    int min = this->arr[0];
    for (int i = 0; i < this->size; i++)
    {
        if(this->arr[i] < min) min = this->arr[i];
    }
 
    return min;
};
 
int main(){
    const int n = 3;
    int a[n] = {2, 3, 4};
    CMyVector vec(a, n);
    cout << vec.avg() << '\n'
         << vec.min() << '\n'
         << vec.max() << '\n';
    return 0;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.10.2012, 17:48     Класс с массивом чисел #3
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
#include <iostream>
#include <cstddef>
#include <ctime>
#include <cstdlib>
 
class array_of_int {
 
    public:
        static const size_t length = 10;
 
    public:
        explicit
        array_of_int(int init = 0) {
 
            for(size_t i = 0; i < length; ++i)
                this->data_[i] = init;
        }
 
        double average() const {
 
            double sum = 0;            
            
            for(size_t i = 0; i < length; ++i)
                sum += this->data_[i];            
            
            return sum / length;
        }
 
        int max() const {
 
            int m = this->data_[0];
            
            for(size_t i = 1; i < length; ++i)
                if(m < this->data_[i])
                    m = this->data_[i];
                
            return m;
        }
 
        int min() const {
            
            int m = this->data_[0];
 
            for(size_t i = 1; i < length; ++i)
                if(m > this->data_[i])
                    m = this->data_[i];
 
            return m;
        }
 
        int& operator[] (size_t idx) {
 
            return this->data_[idx];
        }
 
        const int& operator[] (size_t idx) const {
 
            return this->data_[idx];
        }
        
    private:
        int data_[length];        
};
 
int main() {
 
    using namespace std;
 
    srand(time(NULL));    
    array_of_int a;    
    
    for(size_t i = 0; i < array_of_int::length; ++i) {
        
        a[i] = rand() % 100;
        cout.width(5);
        cout << a[i];
    }
 
    cout << endl;
    
    cout << "average: " << fixed << a.average() << endl;
    cout << "min: " << a.min() << endl;
    cout << "max: " << a.max() << endl;
}
Leew
 Аватар для Leew
1 / 1 / 0
Регистрация: 12.10.2012
Сообщений: 29
14.10.2012, 19:43  [ТС]     Класс с массивом чисел #4
panicwassano
rangerx, спасибо вам обоим, две программы работающие по-разному, буду разбиратся в коде. Огромное спасибо.
Yandex
Объявления
14.10.2012, 19:43     Класс с массивом чисел
Ответ Создать тему
Опции темы

Текущее время: 18:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru