Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 24

Класс для матрицы

11.12.2019, 20:35. Показов 999. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Есть задание - задать метод (или класс с конструктором), который создает матрицу размера m*n и автоматически ее заполняет. С методом не получилось, решил через класс сделать. Но почему то не работает. Выдает в итоге название проекта + matrix[,]. Что не так, и как создать метод?
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
class Program
    {
        class Matrix
        {
            private int m { get; set; }
            private int n { get; set; }
            public Matrix(int m, int n)
            {
                Random R = new Random();
                this.n = n;
                this.m = m;
                int[,] mas = new int[m, n];
                for (int i = 0; i < m; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        mas[i, j] = R.Next(10);
                        
                    }
                }
            }
        }
        static void Main(string[] args)
        {
            int m = Convert.ToInt32(Console.ReadLine()); // кол-во строк
            int n = Convert.ToInt32(Console.ReadLine()); // кол-во столбцов
            Matrix[,] a = new Matrix[m, n];
            Console.WriteLine(a);
            Console.ReadLine();
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2019, 20:35
Ответы с готовыми решениями:

Класс Матрицы для MV c++
Есть ли у кого класс реализующий работу с матрицей (обратная матрица, определитель и т.п.) для Microsoft Visual C++?

Класс для создания динамической матрицы
Доброго времени суток.Уважаемые форумчане подскажите) делаю класс для динамического создания поля для игры сапёр. Столкнулся с проблемой....

Generic-класс для квадратной матрицы
Нужно реализовать обобщённый класс квадратной матрицы. С generic'ами очень плохо, а сделать нужно до сегодня. Буду рад любым примерам и...

7
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
11.12.2019, 20:42
Qaqoyto, не самая лучшая реализация, но сделал минимум изменений для вашего примера, чтобы работало
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
using System;
 
class Matrix
{
    private int m { get; set; }
    private int n { get; set; }
    int[,] mas;
    public Matrix(int m, int n)
    {
        Random R = new Random();
        this.n = n;
        this.m = m;
        mas = new int[m, n];
        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
                mas[i, j] = R.Next(10);
            }
        }
    }
 
    public void Print()
    {
        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
                Console.Write($"{mas[i, j],3}");
            }
            Console.WriteLine();
        }
    }
}
 
class Program
{
    static void Main()
    {
        Matrix matrix = new Matrix(5, 7); // круглые скобки
        matrix.Print();
 
        Console.ReadKey();
    }
}
1
 Аватар для Arthur Progy
251 / 167 / 94
Регистрация: 16.09.2019
Сообщений: 457
11.12.2019, 20:52
Qaqoyto,
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
public class Program
    {
        public static void Main()
        {
            Matrix m = new Matrix(4, 5);
            m.PrintMatrix();
 
            Console.ReadKey(true);
        }
    }
 
    class Matrix
    {
        public Matrix(int rows, int columns)
        {
            Rows = rows;
            Columns = columns;
            _matrix = FillMatrix();
        }
 
        private int[,] _matrix;
 
        private int _rows;
        public int Rows
        {
            get { return _rows; }
            private set
            {
                if(value >= 0)
                    _rows = value;
                else
                    throw new ArgumentException();
            }
        }
 
        private int _columns;
        public int Columns
        {
            get { return _columns; }
            private set
            {
                if(value >= 0)
                    _columns = value;
                else
                    throw new ArgumentException();
            }
        }
 
        private int[,] FillMatrix()
        {
            int[,] matrix = new int[Rows, Columns];
            Random rnd = new Random();
            for(int i = 0; i < Rows; i++)
                for(int j = 0; j < Columns; j++)
                    matrix[i, j] = rnd.Next(10);
            return matrix;
        }
 
        public void PrintMatrix()
        {
            for(int i = 0; i < Rows; i++)
            {
                for(int j = 0; j < Columns; j++)
                    Console.Write($"{_matrix[i, j]}\t");
                Console.WriteLine();
            }
        }
    }
1
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 24
11.12.2019, 20:55  [ТС]
вот пробовал через метод, но выдает в процессе программы ошибку "индекс находился вне границ массива" на строке где возврат mas
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static int Matrix(int m, int n)
            {
                Random R = new Random();
                int [,] mas = new int[m, n];
                for (int i = 0; i < m; i++)
                {
                    for (int j = 0; j < n; j++)
                    {
                        mas[i, j] = R.Next(10);
                    }
                }
            return mas[m,n];
            }
        
        static void Main(string[] args)
        {
            int m = Convert.ToInt32(Console.ReadLine());
            int n = Convert.ToInt32(Console.ReadLine());
            int a = Matrix(m, n);
            Console.WriteLine(a);
            Console.WriteLine(Matrix(m, n));
            Console.ReadLine();
        }
0
 Аватар для Arthur Progy
251 / 167 / 94
Регистрация: 16.09.2019
Сообщений: 457
11.12.2019, 20:57
Qaqoyto, вам реально надо читать документацию либо смотреть форум, вы возвращаете из метода число, которое не существует
1
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 24
11.12.2019, 21:03  [ТС]
Цитата Сообщение от Arthur Progy Посмотреть сообщение
вам реально надо читать документацию либо смотреть форум, вы возвращаете из метода число, которое не существует
понял, спасибо. Буду изучать)

Добавлено через 3 минуты
Цитата Сообщение от Enifan Посмотреть сообщение
не самая лучшая реализация
Почему?
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
11.12.2019, 22:15
Цитата Сообщение от Qaqoyto Посмотреть сообщение
Почему
когда начинаешься осваивать классы - пишешь с одном стиле, поднабираешься опыта - пишешь в другом стиле, и это нормально.
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 24
11.12.2019, 22:21  [ТС]
Цитата Сообщение от Enifan Посмотреть сообщение
когда начинаешься осваивать классы - пишешь с одном стиле, поднабираешься опыта - пишешь в другом стиле, и это нормально.
а, хоспаде, ты про мой))) я уж подумал ты про свой))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2019, 22:21
Помогаю со студенческими работами здесь

Описать абстрактный класс для представления квадратной матрицы
Добрый день. Нужна помощь. После теории дали такое задание. А именно: ...

Класс для матрицы представленной динам. массивом указателей на строки
Матрица переменной размерности, представленная динамическим массивом указателей на строки матрицы (линейные динамические массивы).Нужно...

Класс: Создать классы для представления матрицы в координатном формате.
Задаться матрицей размерностью (80 x 80). Создать классы для представления матрицы в координатном формате. Предусмотреть методы для...

И снова класс Матрицы с функция-член класса для нахождения определителя
Проблема в следующем испробовал все варианты, которые закомментированы, все рабочие ну некоторые с отрицательными числами неправильно...

Класс для работы с прямоугольной матрицей, ввод матрицы с консоли (оператор >>)
ввести класс для работы с прямоугольной матрицей(3х3) Реализовать операцию : ввод матрицы с консоли (оператор &gt;&gt;)продемонстрируйте...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru