Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы: вставить элемент перед каждым отрицательным элементом http://www.cyberforum.ru/cpp-beginners/thread1184237.html
По условию задачи необходимо вставить по одному элементу перед всеми отрицательными элементами. Что не так в коде? #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> int...
C++ Имитационная модель процессора Необходимо разработать программную модель процессора и реализовать его имитационную (т.е. компьютерную) модель. Адресность: 1-адресная Битность регистров/стека и операндов команд: 14 битные... http://www.cyberforum.ru/cpp-beginners/thread1184233.html
C++ Cgi скрипт на C++
Создал простой скрипт на C++ и положил его в cgi-bin не забыл заголовок Content -type , создал на ide microsoft visual провел компиляцию exe файл поменял на cgi вожу в адресе...
Ссылка на неразрешённый символ C++
#include "stdafx.h" #include "stdio.h" #include <clocale> #include <iomanip> #include <fstream> #include <string> #include <iostream> using namespace std; class sotrydnik
C++ Метод чисел Фибоначчи. Вывести решение в виде численного значения в точке экстремума независимой переменной http://www.cyberforum.ru/cpp-beginners/thread1184205.html
Написать программу которая должна выводить решение в виде численного значения в точке экстремума независимой переменной (x экстр.) и значения функции в этой точке y(x экстр.). Метод расчета: Метод...
C++ Нарисовать треугольник квадрат круг Нарисовать треугольник квадрат круг на С++ подробнее

Показать сообщение отдельно
ArhiDeuZ
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 6

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

22.05.2014, 01:44. Просмотров 143. Ответов 0
Метки (Все метки)

Описать тип-объект 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 минуту
Проблема решена, глупая ошибка с инициализированния наследника
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru