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

Разработать класс для представления объекта матрица

05.05.2018, 15:55. Показов 5335. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать класс для представления объекта матрица, состоящая из элементов типа double. Определить конструктор с двумя параметрами целого типа – размерность матрицы, который можно использовать как конструктор умолчания. Определить конструктор, который создаёт новую матрицу таким образом, что все её элементы больше элементов другой матрицы на заданное число, и который можно использовать как конструктор копирования. Определить деструктор. Определить преобразования из переменной типа double в матрицу – заполнение матрицы и из матрицы в переменную типа double – среднее арифметическое элементов матрицы.
Не понятна последняя строчка:
Определить преобразования из переменной типа double в матрицу – заполнение матрицы и из матрицы в переменную типа double – среднее арифметическое элементов матрицы.
Подскажите как это сделать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2018, 15:55
Ответы с готовыми решениями:

Разработать класс Goods для представления некоторого товара с наименованием
Разработать класс Goods для представления некоторого товара с наименованием, ценой за единицу...

Описание класса для представления положения объекта в пространстве
Составить описание класса для представления положения объекта в пространстве. Разработать методы...

Класс для представления цветных точек
Вот интересно, разные классы создавать впринципе реально, но вот как описать класс для...

Класс для представления хэширования в строку
Покажите, как правильно реализовать

3
672 / 475 / 215
Регистрация: 06.09.2013
Сообщений: 1,306
05.05.2018, 16:57 2
Лучший ответ Сообщение было отмечено genk как решение

Решение

Цитата Сообщение от genk Посмотреть сообщение
Определить преобразования из переменной типа double в матрицу – заполнение матрицы и из матрицы в переменную типа double – среднее арифметическое элементов матрицы.
C#
1
2
3
4
5
6
public static explicit operator double(Matrix m) {
    return m.GetAvg (); // Там рассчет среднего арифметического
}
public static explicit operator Matrix(double d) {
    return new Matrix (d); // Там заполнение
}
0
0 / 0 / 0
Регистрация: 13.04.2018
Сообщений: 49
06.05.2018, 14:59  [ТС] 3
Можете пожалуйста подредактировать код,я добавил,появляются ошибки,просто начал только изучать тему,пока не разобрался еще.
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
using System;
 
namespace ConsoleApplication
{
    //Разработать класс для представления объекта матрица, состоящая из элементов типа double
    public class Matrix
    {
        private double[,] data;
 
        public int RowsCount
        {
            get
            {
                return data.GetLength(0);
            }
        }
 
        public int ColumnsCount
        {
            get
            {
                return data.GetLength(1);
            }
        }
        // Определить конструктор с двумя параметрами целого типа – размерность матрицы, который можно использовать как конструктор умолчания
            public Matrix(int n, int m)
        {
            Random r = new Random();
            data = new double[n, m];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    data[i, j] = r.Next(1, 10);
        }
   //Определить конструктор, который создаёт новую матрицу таким образом, что все её элементы больше элементов другой матрицы на заданное число, и который можно использовать как конструктор копирования.
        public Matrix(Matrix another, int increase)
        {
            data = new double[another.RowsCount, another.ColumnsCount];
            for (int i = 0; i < RowsCount; i++)
                for (int j = 0; j < ColumnsCount; j++)
                    data[i, j] = another[i, j] + increase;
        }
 
        // индексатор
        public double this[int rowIndex, int columnIndex]
        {
            get
            {
                return data[rowIndex, columnIndex];
            }
        }
    }
 
    //Определить преобразования из переменной типа double в матрицу – заполнение матрицы и из матрицы в переменную типа double 
    //– среднее арифметическое элементов матрицы.
    public static explicit operator double(Matrix m) {
    return m.GetAvg (); // Там рассчет среднего арифметического
    }
    public static explicit operator Matrix(double d) {
    return new Matrix (d); // Там заполнение
    }
 
    public class Program
    {
        static void Main(string[] args)
        {
            Matrix m1 = new Matrix(4, 6);
            Matrix m2 = new Matrix(m1, 5);
        }
    }
}
Добавлено через 8 минут
woldemas, Можете пожалуйста подредактировать код,я добавил,появляются ошибки,просто начал только изучать тему,пока не разобрался еще.

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
namespace ConsoleApplication
{
//Разработать класс для представления объекта матрица, состоящая из элементов типа double
public class Matrix
{
private double[,] data;
 
public int RowsCount
{
get
{
return data.GetLength(0);
}
}
 
public int ColumnsCount
{
get
{
return data.GetLength(1);
}
}
// Определить конструктор с двумя параметрами целого типа – размерность матрицы, который можно использовать как конструктор умолчания
public Matrix(int n, int m)
{
Random r = new Random();
data = new double[n, m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
data[i, j] = r.Next(1, 10);
}
//Определить конструктор, который создаёт новую матрицу таким образом, что все её элементы больше элементов другой матрицы на заданное число, и который можно использовать как конструктор копирования.
public Matrix(Matrix another, int increase)
{
data = new double[another.RowsCount, another.ColumnsCount];
for (int i = 0; i < RowsCount; i++)
for (int j = 0; j < ColumnsCount; j++)
data[i, j] = another[i, j] + increase;
}
 
// индексатор
public double this[int rowIndex, int columnIndex]
{
get
{
return data[rowIndex, columnIndex];
}
}
}
 
//Определить преобразования из переменной типа double в матрицу – заполнение матрицы и из матрицы в переменную типа double 
//– среднее арифметическое элементов матрицы.
public static explicit operator double(Matrix m) {
return m.GetAvg (); // Там рассчет среднего арифметического
}
public static explicit operator Matrix(double d) {
return new Matrix (d); // Там заполнение
}
 
public class Program
{
static void Main(string[] args)
{
Matrix m1 = new Matrix(4, 6);
Matrix m2 = new Matrix(m1, 5);
}
}
}
0
151 / 148 / 103
Регистрация: 30.10.2016
Сообщений: 314
09.05.2018, 14:37 4
Цитата Сообщение от genk Посмотреть сообщение
Можете пожалуйста подредактировать код
Скобку } из 49 строки перенесите в 59 строку. Проблема в том, что Вы вставили код вне класса. Кроме того, Вам дополнительно нужно реализовать метод
Цитата Сообщение от genk Посмотреть сообщение
GetAvg (); // Там рассчет среднего арифметического
0
09.05.2018, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2018, 14:37
Помогаю со студенческими работами здесь

Описать класс для представления даты
Описати клас для представлення дати. Поивинні бути визначені: - можливість встановлення дати та...

Класс для представления даты и времени
Здравствуйте, знаю что уже было много тем создано с подобным вопросом. Но начал искать я уже после...

Создать класс Triangle для представления треугольника
Уважаемые участники форума,напишите пожалуйста код следующей программы на Visual Studio 2010: ...

Какой класс использовать для представления времени
Мне нужно расписание сделать. Можно ,конечно, через дабл 13.30 , но как-то не по госту, наверное....


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

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

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