Вывести подматрицу - 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("");
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы