Вывести подматрицу - C#
Формулировка задачи:
Описать класс, обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы, доступа по индексам к элементу матрицы.
вот я сделал чтто смог, но я не умею в классах работать и не могу сделать, чобы при добавлении строки к матрице исходная матрица тоже увеличивалась...
вывод на экран подматрицы вообще не представляю как делать
Спасибо заранее
static void Main(string[] args) { Console.WriteLine("Введите размер матрицы:"); Console.WriteLine("строк: "); int n = int.Parse(Console.ReadLine()); Console.WriteLine("столбцов: "); int m = int.Parse(Console.ReadLine()); int[,] A = new int[n, m]; Random rnd = new Random(); int nnew = 0, mnew = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { A[i, j] = rnd.Next(0, 9); } } //распечатали массив Console.WriteLine("Массив: "); for (int i = 0; i < n + nnew; i++) { for (int j = 0; j < m + mnew; j++) { Console.Write("{0} ", A[i, j]); } Console.WriteLine(); } //распечатали массив do { Console.WriteLine("Выберите действие нд матрицей: \n1 - добавить столбцы \n2 - добавить строки \n3 - поиск значения по индексу \n4 - выход з программы"); int swt = int.Parse(Console.ReadLine()); switch (swt) { case 1: Console.WriteLine("На сколько столбцов увеличить матрицу?"); mnew = int.Parse(Console.ReadLine()); int[,] B = new int[n, m + mnew]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { B[i, j] = A[i, j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m + mnew; j++) { B[i, j] = rnd.Next(0, 9); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { B[i, j] = A[i, j]; } } Console.WriteLine("Массив: "); for (int i = 0; i < n; i++) { for (int j = 0; j < m + mnew; j++) { Console.Write("{0} ", B[i, j]); } Console.WriteLine(); } Console.ReadKey(); break; case 2: Console.WriteLine("На сколько строк увеличить матрицу?"); nnew = int.Parse(Console.ReadLine()); int[,] C = new int[n + nnew, m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { C[i, j] = A[i, j]; } } for (int i = 0; i < n + nnew; i++) { for (int j = 0; j < m; j++) { C[i, j] = rnd.Next(0, 9); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { C[i, j] = A[i, j]; } } Console.WriteLine("Массив: "); for (int i = 0; i < n + nnew; i++) { for (int j = 0; j < m; j++) { Console.Write("{0} ", C[i, j]); } Console.WriteLine(); } Console.ReadKey(); break; case 3: { Console.WriteLine("Введите значения индексов через пробел(строка столбец): "); string[] split = Console.ReadLine().Split(' '); int nindex = int.Parse(split[0]); int mindex = int.Parse(split[1]); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if ((i == nindex) && (j == mindex)) { Console.WriteLine(A[i - 1, j - 1]); } } } } Console.ReadKey(); break; case 4: Console.WriteLine("Выход из программы: \nДля выхода нажмите Esс"); break; default: Console.WriteLine("Неправильно!"); break; } ConsoleKeyInfo cki = Console.ReadKey(true); if (cki.Key == ConsoleKey.Escape) { break; } } while (true); }
Решение задачи: «Вывести подматрицу»
textual
Листинг программы
using System; namespace ConsoleApplication1 { class Matrix { internal int row { get; set; } internal int col { get; set; } public void printMatrix() { Random rand = new Random(); for (int i = 0; i < col; ++i) { for (int j = 0; j < row; ++j) { Console.Write(rand.Next (0, 9)+" "); } Console.WriteLine(""); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д