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

как переделать?конструкторы и деструкторы - C++

Восстановить пароль Регистрация
 
Виктор242424
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 37
03.10.2013, 17:27     как переделать?конструкторы и деструкторы #1
Как переделать 1 задание во 2?
Создать класс матрица Данный класс содержит указатель на long, размер строк и столбцов и состояние ошибки. Определить конструктор без параметров, конструктор с одним параметром и конструктор с двумя параметрами, деструктор. Определить методы доступа: возвращать значение элемента (i, j) и адрес этого элемента. Определить функцию печати. Определить функции сложения и вычитания (матрицы с матрицей), умножение матрицы на матрицу. Определить умножение матрицы на число. Проверить работу этого класса. В случае нехватки памяти, несоответствия размерностей, выхода за пределы устанавливать код ошибки.

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
133
134
135
136
#include <iostream>
#include <cstdlib>
#include <locale.h>
using namespace std;    
class matrix
    {
        int isize, jsize;
        long *p;
        public:
            matrix()
                {
                    isize = 1;
                    jsize = 1;
                    p = new long[isize * jsize];
                    }
            matrix(int j)
                {
                    isize = 1;
                    jsize = j;
                    p = new long[isize * jsize];
                    }
            matrix(int i, int j)
                {
                    isize = i;
                    jsize = j;
                    p = new long[isize * jsize];
                    }
            ~matrix()
                {
                    }
            void vvod()
                {
                    setlocale(LC_ALL,"Russian");
                    int i,j;
                    for (i=0; i<isize; i++)
                        {
                            cout << "Введите строку " << (i+1) <<endl;
                            for (j=0; j<jsize; j++)
                                {
                                    cin >> p[i* jsize + j];
                                    }
                            }
                    }
            void print()
                {
                    int i,j;
                    for (i=0; i<isize; i++)
                        {
                            for (j=0; j<jsize; j++)
                                {
                                    cout << p[i* jsize + j] << " ";
                                    }
                            cout <<endl;
                            }
                    cout <<endl;
                    }
            void get(int i, int j)
                {
                    cout << "Элемент равен:"  <<endl;
                    cout << p[i* jsize + j]<<endl;
                    cout << "Адрес элемента равен:"  <<endl;
                    cout << &p[i* jsize + j];
                    }
            void sum (matrix n, matrix m)
                {
                    if (n.isize != m.isize ||  n.jsize != m.jsize)
                        {
                            cout << "Операция не определена"  <<endl;
                            exit(1);
                            }
                    int i,j;
                    isize = n.isize;
                    jsize = n.jsize;
                    for (i=0; i<isize; i++)
                        {
                            for (j=0; j<jsize; j++)
                                {
                                    p[i* jsize + j]=n.p[i* jsize + j]+m.p[i* jsize + j];
                                    }
                            }
                    }
            void mul (matrix n, matrix m)
                {
                    if (n.jsize != m.isize)
                        {
                            cout << "Операция не определена"  <<endl;
                            exit(1);
                            }
                    int i,j,k;
                    isize = n.isize;
                    jsize = m.jsize;
                    for (i=0; i<isize; i++)
                        {
                            for (j=0; j<jsize; j++)
                                {
                                    p[i* jsize + j]=0;
                                    for (k=0; k<=m.jsize ;k++)
                                        {
                                            p[i* jsize + j]=p[i* jsize + j]+n.p[i* n.jsize + k]*m.p[k* m.jsize + j];
                                            }
                                    }
                            }
                    }
            void muldigic (matrix n, long x)
            {
                int i,j;
                isize = n.isize;
                jsize = n.jsize;
                for (i=0; i<isize; i++)
                    {
                        for (j=0; j<jsize; j++)
                            {
                                p[i* jsize + j]=n.p[i* jsize + j]*x;
                                }
                        }
                }
            };
            int main()
                {
                    matrix a(2,3);
                    matrix b(3,2);
                    matrix c;
                    a.vvod();
                    b.vvod();
                    a.print();
                    b.print();
                    c.print();
                    c.mul (a,b);
                    c.print();
                    c.muldigic (a,2);
                    c.print();
                    a.get(0,0);
                    c.sum (a, b);
                    getchar();
                    return 0;
                    }
задание 2
Создать класс «матрица». Данный класс должен содержать элементы типа int, определяющие число строк, столбцов и состояние ошибки. Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор.
Определить метод, возвращающий значение элемента матрицы и его адрес. Определить функцию печати матрицы. Определить функции поиска максимального и минимального элемента, умножения матрицы на число, транспонирования матрицы. В случае нехватки памяти и несоответствия размерностей устанавливать код ошибки и выводить его на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 17:27     как переделать?конструкторы и деструкторы
Посмотрите здесь:

НАследуются ли конструкторы и деструкторы? C++
C++ Конструкторы/Деструкторы
C++ Конструкторы и деструкторы
C++ Конструкторы и деструкторы
C++ Конструкторы и деструкторы
Конструкторы и деструкторы C++
Пустые конструкторы и деструкторы C++
Конструкторы и деструкторы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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