Exemplo n.º 1
0
 static void ShowMatrix(MyMatrix <int> matrix)
 {
     // вывести на экран матрицу
     for (var i = 0; i < matrix.Height; i++)
     {
         for (var j = 0; j < matrix.Width; j++)
         {
             Console.Write("{0,4}", matrix[j, i]);
         }
         Console.WriteLine();
     }
 }
Exemplo n.º 2
0
        static void Main()
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Console.Title          = "Lab5_3";

            MyMatrix <int> matrix = null;

            while (Console.KeyAvailable)
            {
                Console.ReadKey();                  // Очистить буферобмену
            }
            for (; ;)
            {
                int a, b;
                if (matrix == null)
                {
                    Console.Write("Пожалуйста, введите ширину матрицы от 1 до 9: ");
                    do
                    {
                        a = GetNumberKey();
                    } while (a < 1);
                    Console.WriteLine(a);

                    Console.Write("Пожалуйста, введите высоту матрицы від 1 до 9: ");
                    do
                    {
                        b = GetNumberKey();
                    } while (b < 1);
                    Console.WriteLine(b);

                    matrix = new MyMatrix <int>(a, b);
                }

                Console.WriteLine("Что вы хотите сделать?");
                Console.WriteLine("1. Показать матрицу");
                Console.WriteLine("2. Редоктировать матрицу");
                Console.WriteLine("3. Пересоздать матрицу");
                Console.WriteLine("4. Добавить столбец матрицы");
                Console.WriteLine("5. Добавить строку к матрицы");
                Console.WriteLine("6. Удалить столбцы матрицы");
                Console.WriteLine("7. Удалить строку матрицы");
                Console.WriteLine("8. Выйти с програмы");

                do
                {
                    a = GetNumberKey();
                } while (a < 1 || a > 8);
                switch (a)
                {
                case 1:
                    ShowMatrix(matrix);
                    break;

                case 2:
                    EditMatrix(matrix);
                    break;

                case 3:
                    matrix = null;
                    break;

                case 4:
                    Console.WriteLine("В конец матрицы добавили столбец.");
                    matrix.AddOneColumn();
                    break;

                case 5:
                    Console.WriteLine("В конец матрицы добавили столбец.");
                    matrix.AddOneRow();
                    break;

                case 6:
                    Console.WriteLine("Удален последний столбец матрицы.");
                    matrix.RemoveOneColumn();
                    break;

                case 7:
                    Console.WriteLine("Удален последний столбец матрицы.");
                    matrix.RemoveOneRow();
                    break;

                case 8:
                    return;
                }
            }
        }
Exemplo n.º 3
0
        static void EditMatrix(MyMatrix <int> matrix)
        {
            ShowMatrix(matrix);

            var fgc         = Console.ForegroundColor;
            var bgc         = Console.BackgroundColor;
            var x           = 0;
            var y           = 0;
            var currentline = Console.CursorTop;              // Запомнить номер строки

            while (Console.KeyAvailable)
            {
                Console.ReadKey();                  // Очистити буферобмена
            }
            for (; ;)
            {
                Console.SetCursorPosition(x * 4, currentline - matrix.Height + y);
                Console.BackgroundColor = fgc;
                Console.ForegroundColor = bgc;
                Console.Write("{0,4}", matrix[x, y]);
                Console.ResetColor();
                Console.SetCursorPosition(0, currentline);
                ConsoleKey key = Console.ReadKey(true).Key;
                Console.SetCursorPosition(x * 4, currentline - matrix.Height + y);
                Console.Write("{0,4}", matrix[x, y]);
                Console.SetCursorPosition(0, currentline);
                switch (key)
                {
                case ConsoleKey.Enter:
                    goto Exit;

                case ConsoleKey.LeftArrow:
                    // Перемістить курсор вліво.
                    if (x > 0)
                    {
                        x--;
                    }
                    break;

                case ConsoleKey.UpArrow:
                    // Перемістить курсор вверх.
                    if (y > 0)
                    {
                        y--;
                    }
                    break;

                case ConsoleKey.RightArrow:
                    // Перемістить курсор вправо.
                    if (x < matrix.Width - 1)
                    {
                        x++;
                    }
                    break;

                case ConsoleKey.DownArrow:
                    // Переместить курсор вниз.
                    if (y < matrix.Height - 1)
                    {
                        y++;
                    }
                    break;

                case ConsoleKey.D0:
                case ConsoleKey.D1:
                case ConsoleKey.D2:
                case ConsoleKey.D3:
                case ConsoleKey.D4:
                case ConsoleKey.D5:
                case ConsoleKey.D6:
                case ConsoleKey.D7:
                case ConsoleKey.D8:
                case ConsoleKey.D9:
                    // Если ввести цифру, минус меняется
                    if (matrix[x, y] < 0)
                    {
                        matrix[x, y] = -matrix[x, y];
                    }
                    matrix[x, y] = (matrix[x, y] % 10 * 10) + (key - ConsoleKey.D0);
                    break;

                case ConsoleKey.NumPad0:
                case ConsoleKey.NumPad1:
                case ConsoleKey.NumPad2:
                case ConsoleKey.NumPad3:
                case ConsoleKey.NumPad4:
                case ConsoleKey.NumPad5:
                case ConsoleKey.NumPad6:
                case ConsoleKey.NumPad7:
                case ConsoleKey.NumPad8:
                case ConsoleKey.NumPad9:
                    // Если ввести цифру, минус меняется
                    if (matrix[x, y] < 0)
                    {
                        matrix[x, y] = -matrix[x, y];
                    }
                    matrix[x, y] = (matrix[x, y] % 10 * 10) + (key - ConsoleKey.NumPad0);
                    break;

                case ConsoleKey.OemMinus:
                case ConsoleKey.Subtract:
                    matrix[x, y] = -matrix[x, y];
                    break;

                default:
                    break;
                }
            }
Exit:
            Console.CursorVisible = true;              // Курсор.
        }