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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArhiDeuZ
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 6
#1

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

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

У меня задача,в матрице,заменить первый отрицательный элемент максимальным элементом. Проходить по матрице слева направо,сверху вниз - C++
У меня задача,в матрице,заменить первый отрицательный элемент максимальным элементом. Проходить по матрице слева направо,сверху вниз. Я...

Использование конструктора базового класса наследником - C++
Доброго дня, коллеги! Решал одну задачку и столкнулся с проблемой. По условию дан класс String, моделирующий работу типа данных string....

Запрет shared_ptr быть наследником определённого класса - C++
Добрый день, #include &lt;memory&gt; class A { }; class B : public A {

Задача по матрице - C++
Срочно!!!Очень! Или выпихнут мну нафиг!!! Условие: Квадратная матрица размером NxN заполнена целыми числами из промежутка . Назовем...

Как проверить является ли объект базовым классом или наследником - C++
struct Base { int i = -1; }; struct Derived : Base { double d = 0.1; };

Поиск в матрице, задача - C++
Итак форум ваш мне очень понравился по тому как мало людей которые дают ненужные советы, а только дельные слова. Сама проблема...

Проверить, каким классом наследником помечен элемент общего (наследующего) массива - C++
подскажите как можно, и можно ли проверить, каким классом наследником помечен элемент общего(наследующего) массива?

Задача на поиск луж в матрице - C++
Всем доброго дня. Есть задача, который день бьюсь, не могу придумать алгоритм. &quot;Consider a matrix of integers MxN, where each value...

Задача с перестановкой столбцов в матрице - C++
Ребят,всем привет,помогите пожалуйста с задачей. . Дана целочисленная квадратная матрица порядка n. Переставить столбцы таким образом,...

Задача. Найти произведение элементов(<0) строки в матрице - C++
Здравствуйте, пытаюсь создать программу, не получается. Нужно найти произведение отрицательных элементов строки в матрице. И если в этой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru