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

Динамический массив элементов произвольного типа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти среднее арифметическое значение четных элементов и среднее арифметическое нечетных элементов и сравнить их между собой http://www.cyberforum.ru/cpp-beginners/thread1065602.html
Найти среднее арифметическое значение четных элементов и среднее арифметическое нечетных элементов и сравнить их между собой. Вот часть кода, четные правильно подсчитывает, а нечетные никак. Подскажите плиз. int Sumch = 0; int s = 0; int nechet = 0; int chet = 0;
C++ работа с файлом через входной параметр int _tmain(int argc,char* argv) { FILE* F =fopen(argv, "wt+"); когда пишу параметр запуская через командную строку или ярлык, создается файл с первой буквой параметра, и туда записывается все что надо. Параметр писал и с полным указанием пути "C:\...." в итоге он называл файл С, писал параметр "input" файл создавался i, ставил кавычки, не помогло, подскажите, то-ли я тупой, то-ли лыжи не... http://www.cyberforum.ru/cpp-beginners/thread1065566.html
Ссылки на тип данных в классе C++
ребят, подскажите, как это Создать класс содержащий ссылку на int? не понимаю ссылки...
C++ Вычислить сумму элементов матрицы выше главной диагонали
Здравствуйте. Помогите решить задание. Нужно вычислить сумму элементов матрицы выше главной диагонали. Заранее спасибо.
C++ Составить программу вычисления функции http://www.cyberforum.ru/cpp-beginners/thread1065529.html
Нужно составить программу вычисления значения функции y(x) при произвольном значении х. До этого находил похожую формулу программы, но числа слишком большие. Может что в формуле не так, подскажите пожалуйста? #include "stdafx.h" #include <iostream> #include <math.h> #include <conio.h> using namespace std; void main() {
C++ Запрос роста в см, вывод в метрах и см const double m = 100; int height; int main() { cout << "Enter your height in cm:______\b\b\b\b\b\b"; cin >> height; cout << int (height / m) << " m and " << (height / m - int (height / m)) * m << " cm"<< "" ; return 0; } подробнее

Показать сообщение отдельно
Mehanik511
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 16
09.01.2014, 01:10  [ТС]     Динамический массив элементов произвольного типа
Цитата Сообщение от DU Посмотреть сообщение
напишите хотябы для одного конкретного типа такой массив.
Спасибо, попробую.

Добавлено через 10 часов 22 минуты
Вот, что у меня получилось:
Кликните здесь для просмотра всего текста
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
131
132
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <conio.h>
#include <ctime>
#include <iostream>
using namespace std;
 
class DynamicArray
{
public:
    int i, j, row, col, M, N, **Array;
    void Random();
    void Print();
    void Change();
    void MemFree();
    void Enter();
};
 
int main()
{
    setlocale(LC_ALL, "");
    srand(time(0));
    DynamicArray Arr;
    //-------------Меню-------------------
    for (;;)
    {   
        cout << "------------------------" << endl;
        cout << "Введите <1> для случайного задания массива" << endl;
        cout << "Введите <2> для ручного задания массива" << endl;
        cout << "Введите <3> для изменения элемента массива" << endl;
        cout << "Введите <0> для выхода из меню" << endl;
        cout << "------------------------" << endl;
        int num = 0;
        cin >> num;
        cout << endl;
        if (num == 3)
        {
            Arr.Change();
        }
        if (num == 1)
        {
            Arr.Random();
        }
        if (num == 2)
        {
            Arr.Enter();
        }
        if (num == 0)
        {
            return 0;
        }
    }
    
    //---------------------------------------
 
    Arr.MemFree();
    printf("\nPress Any Key To Exit...");
    _getch();
}
 
void DynamicArray::Print()
{
    cout << "Массив: " << endl;
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            printf("%5d", Array[i][j]);
        }
        cout << endl;
    }
    cout << endl;
};
 
void DynamicArray::Random()
{
    cout << "Введите размер массива Array[M][N]: " << endl;
    cout << "M = "; cin >> M;
    cout << "N = "; cin >> N;
    Array = new int *[M];
    for (i = 0; i < M; i++)
        Array[i] = new int[N];
    cout << "Array[" << M << "][" << N << "]" << endl;
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
        {
            Array[i][j] = rand() % 100 - 49;
        }
    }
    cout << endl;
    DynamicArray::Print();
};
 
void DynamicArray::Change()
{
    cout << "Введите элемент Array[row][col], который хотите изменить:" << endl;
    cout << "row = "; cin >> row;
    cout << "col = "; cin >> col;
    cout << "Array[" << row << "][" << col << "] = "; cin >> Array[row - 1][col - 1];
    cout << endl;
    DynamicArray::Print();
};
 
void DynamicArray::Enter()
{
    cout << "Введите размер массива Array[M][N]: " << endl;
    cout << "M = "; cin >> M;
    cout << "N = "; cin >> N;
    Array = new int *[M];
    for (i = 0; i < M; i++)
        Array[i] = new int[N];
    cout << "Array[" << M << "][" << N << "]" << endl << endl;
    cout << "Введите элементы массива: " << endl;
    for (i = 0; i<M; i++)
    {
        for (j = 0; j<N; j++)
        {
            cout << "Array[" << i+1 << "][" << j+1 << "] = ";
            cin >> Array[i][j];
        }
        cout << endl;
    }
    DynamicArray::Print();
};
 
void DynamicArray::MemFree()
{
    for (i = 0; i < M; i++)
        delete[] Array[i];
    delete[] Array;
};

Я не совсем понял, зачем использовать конструкторы и деструкторы, если они создаются автоматом при компиляции.
Так вот, просьба подсказать, что необходимо сделать дальше. И вообще, правильно ли я сделал эту часть. Если нет, то объясните, пожалуйста, что именно нужно изменить.
 
Текущее время: 01:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru