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

Ошибка с наследником. Задача по матрице - C++

Восстановить пароль Регистрация
 
ArhiDeuZ
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 6
22.05.2014, 01:44     Ошибка с наследником. Задача по матрице #1
Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы: ввод матрицы; вывод матрицы; определение минимального элемента среди отрицательных элементов матрицы. Описать тип и методы его потомка MATR (методы: определение наибольшего общего делителя элементов матрицы; определение максимального среди неповторяющихся элементов матрицы ).
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include "stdafx.h"
//#include <stdlib.h>
//#include <iomanip>
//#include <cstdlib>
#include <iostream>
using namespace std;
 
class Matrix {
public:
int m,n;
int a[100][100];
Matrix ( );// конструктор
~Matrix ( );// деструктор
void Enter ();
void Display ();
void Min();
};
 
Matrix:: Matrix ( )
{
cout << "Vvod v matrix \n";
cout << "Vvedite kolvo strok: ";
cin >> m;
cout << "Vvedite kolvo stolbcov: ";
cin >> n;
}
 
Matrix:: ~Matrix()
{
 
cout << "Deleted...\n";
}
void Matrix :: Enter ( )
{
  int i;
  int j;
  for (i=0; i<m; i++) 
  {
    for (j=0; j<n;j++) 
    {
       cout << "Vvod chisel v matricu: " << "a["<<i<<"]["<<j<<"]:" ;
       cin >> a[i][j];
    }
  }
   cout <<"\n";
};
 
void Matrix :: Display ()
{
  int i;
  int j;
  int l=0;
  for (i=0; i<m; i++)
  {
    for (j=0; j<n; j++)
    {
       cout << a[i][j] << " ";
    }
    cout << "\n";
  }
  cout << "\n";
  cin >> l;
};
 
void Matrix :: Min () 
{
    int i;
    int j;
    int min = a[0][0];
    for (i=0;i<m;i++)
    {
        for (j=0;j<n;j++)
        {
            if (a[i][j]<0)
            {
                if (a[i][j]<min)
                {
                    min = a[i][j];
                }
            }
        }
    }
    if (min > 0)
    {cout << " Net otricatelbnblx 4isel";
    }
    else
    {
    cout << "Minimum= " << min;
    }
    cout << "\n";
}
int nod (int a, int b)  //нахождение НОД по алгоритму Евклида
{
    while (a && b)
        if (a >= b)
           a %= b;
        else
           b %= a;
    return a | b;
}
 
class Matr : public Matrix 
{
public:
void NOD ();
void Max ();
};
 
 
void Matr :: NOD()
{
    int i;
    int j;
    int q=a[0][0];
    for(i = 0; i<m; i++)
    {
      for(j=0; j<n; j++)
      {
        q=nod(q, a[i][j]);
      }
    }
    cout << q;
    cout << "\n";
}
void Matr :: Max()
{
    int i;
    int j;
    int max = a[0][0];
    for (i=0;i<m;i++)
    {
        for (j=0;j<n;j++)
        {
            if (a[i][j]>max)
            {
                max = a[i][j]; // Нахождение максимального элемента матрицы
            }
        }
    }
    cout << max;
    cout << "\n";
}
 
 
int main ()
{
    Matrix ob;
    Matr ob2;
    ob.Enter ();
    ob.Display();
    ob.Min();
    ob2.NOD();
    ob2.Max();
    system("pause");
    return 0;
};
Ошибка возникает при выводе ответа ob2.NOD() и ob2.Max(). Не могу разобраться, помогите. Убираю наследника все работает, создаю обратно, все перестает работать.

Добавлено через 21 минуту
Проблема решена, глупая ошибка с инициализированния наследника
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 01:44     Ошибка с наследником. Задача по матрице
Посмотрите здесь:

Задача по матрице C++
Простая задача, помогите найти макс. элементы в матрице C++
У меня задача,в матрице,заменить первый отрицательный элемент максимальным элементом. Проходить по матрице слева направо,сверху вниз C++
как узнать,является данный объект класса А1 наследником класса А2 C++
C++ Задача. Найти произведение элементов(<0) строки в матрице
Задача с перестановкой столбцов в матрице C++
Проверить, каким классом наследником помечен элемент общего (наследующего) массива C++
C++ Поиск в матрице, задача

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

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

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