0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 9
1

Использование свойства полиморфизма и исследование механизма виртуальных функций

24.12.2014, 22:53. Показов 760. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создайте класс Matr, определите в нем виртуальную функцию-член matrica(int n), которая определяет произведение элементов квадратной матрицы. Создайте производные классы Matr1 и Matr2 с перегруженной функцией matrica(int n) для нахождения мах и мin элементов квадратной матрицы соответственно.

Не получается вывод максимального и минимального элемента.

matr.h
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
#ifndef __LR_12__matr__
#define __LR_12__matr__
 
#include <stdio.h>
 
class Matr
{
public:
    virtual int matrica(int n);
    Matr() {}
    virtual ~ Matr() {}
    int p, A[10][10], n;
};
class Matr1:public Matr
{
public:
    int matrica(int n);
    Matr1() {}
    virtual ~ Matr1() {}
    int max;
    void PrMax();
};
class Matr2:public Matr
{
public:
    int matrica(int n);
    Matr2() {}
    virtual ~ Matr2() {}
    int min;
    void PrMin();
};
#endif /* defined(__LR_12__matr__) */
matr.cpp
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
#include "matr.h"
#include <iostream>
#include <iomanip>
#include <math.h>
 
using namespace std;
 
int Matr::matrica(int n)
{
    cout << "Введите размер квадратной матрицы: ";
    cin >> n;
    for (int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            A[i][j]=rand()%20;
        }
    }
    cout << "\nМатрица: \n";
    for (int i=0; i<n; i++){
        cout << endl;
        for(int j=0; j<n; j++){
            cout << setw(5) << A[i][j];
        }
    cout << "\n";
    }
    cout << endl;
    p=1;
    for (int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            p=p*A[i][j];
        }
    }
    cout << "Произведение элементов матрицы = " ;
    return p;
}
int Matr1::matrica(int n)
{
    max=A[0][0];
    for (int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if (j>=i)
            if ((i+j)<=(n+1))
            if (A[i][j]>max)
            {
                max=A[i][j];
            }
        }
    }
    cout << "Максимальный элемент = " ;
    return max;
}
 
int Matr2::matrica(int n)
{
    min=A[0][0];
    for (int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if (j>=i)
                if ((i+j)>=(n+1))
            if (min>A[i][j])
            {
                min=A[i][j];
            }
        }
    }
    cout << "Минимальный элемент = " ;
    return min;
}

main.cpp
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
#include <iostream>
#include <math.h>
#include <stdio.h>
#include "matr.h"
 
using namespace std;
int main()
{
    int n;
    Matr *B = new Matr;
    cout << B->matrica(n) << endl;
    
    Matr *M = new Matr1;
    M->n=B->n;
    for (int i=0; i<M->n; i++) {
        for (int j=0; i<M->n; j++) {
            M->A[i][j]=B->A[i][j];
        }
    }
    cout << M->matrica(n) << endl;
    
    Matr *M1 = new Matr2;
    M->n=B->n;
    for (int i=0; i<M->n; i++) {
        for (int j=0; i<M->n; j++) {
            M->A[i][j]=B->A[i][j];
        }
    }
    cout << M1->matrica(n) << endl;
    
    cin.get();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2014, 22:53
Ответы с готовыми решениями:

Полиморфизм и исследование виртуальных функций
Добавьте в состав класса виртуальную функцию просмотра текущего объекта print (), а в производный...

Использование виртуальных функций
Дан класс &quot;треугольник&quot;, который определяется длиной одной из сторон и значениями прилегающих...

Использование виртуальных функций
Программа берет данные из двух файлов, в которых есть дата и количество проданных билетов, и...

Создать базовый класс, использовать свойства полиморфизма и абстракции
Создать базовый класс &quot; Транспортное средство&quot; и производные классы: &quot;Автомобиль&quot;, &quot;Мопед&quot;,...

1
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 9
12.01.2015, 21:32  [ТС] 2
Помогите с выводом максимального и минимального значения в main.cpp Пожалуйста
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2015, 21:32
Помогаю со студенческими работами здесь

Использование полиморфизма
Помогите написать программу, которая использует перегрузительную функцию для работы с данными...

Использование свойств полиморфизма
Нужна помощь. Сгенерируйте абстрактный класс типа фигура, создайте производные от него классы типа...

Полное исследование функций. Исследование функций на непрерывность.
1. Виды области определения некоторых возможных типов функций. 2. В особых точках, найденных в...

Использование полиморфизма. Правильно или нет
using System; namespace Polymorphism_Exist{ class Panzer{ virtual public void...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru