Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text.RegularExpressions;
- namespace ConsoleApp1
- {
- class Program
- {
- //Функция выводит матрицу на консоль
- static void PrintMatrix(int[,] matrix)
- {
- // В этой переменной хранится количество строк в матрице
- int rowLength = matrix.GetLength(0);
- // В этой переменной хранится количество столбцов в матрице
- int colLength = matrix.GetLength(1);
- // Создаётся пустая строка, к которой постепенно будут приписываться значения из матрицы
- string arrayString = "";
- // В переменной i хранится текущая строка матрицы. Цикл идёт от 0 до rowLength
- for (int i = 0; i < rowLength; i++)
- {
- // В переменной j хранится текущий столбец матрицы. Цикл идёт от 0 до colLength
- for (int j = 0; j < colLength; j++)
- {
- // Добавляем к строке arrayString следующую ячейку и пробел после неё
- arrayString += matrix[i, j] + " ";
- }
- // Добавляем переход на следующую строку
- arrayString += System.Environment.NewLine;
- }
- //Выводим строку arrayString в консоль
- Console.WriteLine(arrayString);
- }
- //Функция удаления строки из матрицы. Возвращает новую матрицу, в которой будет отсутствовать строка, которую нужно удалить.
- static int[,] RemoveLineFromMatrix(
- int[,] matrix, // Матрица, на основании которой проиходит удаление
- int lineNumber // Номер строки, которую нужно удалить. Отсчёт идет от нулевой строки.
- )
- {
- // Если если в матрице нет указанной строки, то возвращает исходную матрицу
- if (matrix.GetLength(0) <= lineNumber || lineNumber < 0)
- return matrix;
- // Создадим новую матрицу (пока пустую) и заполним её в следующийх строках
- int[,] newMatrix = new int[matrix.GetLength(0) - 1, matrix.GetLength(1)];
- // В переменной i хранится текущая строка
- for (int i = 0; i < matrix.GetLength(0) - 1; i++)
- {
- int currentLine = i;
- //Если значение текущей строки больше или равно той, которую нужно удалить, то текущее значение увеличим на 1
- // Это позволит пропустить в исходной матрице строку для удаления
- if (i >= lineNumber)
- {
- currentLine++;
- }
- // В переменной i хранится текущий столбец
- for (int j = 0; j < matrix.GetLength(1); j++)
- {
- // Запишем в новую матрицу строку из старой
- newMatrix[i, j] = matrix[currentLine, j];
- }
- }
- //Возвращаем новую матрицу без нужной строки.
- return newMatrix;
- }
- static void Main(string[] args)
- {
- // В этих строках создаётся матрица. 4 - количество строк, 2 - количество столбцов.
- int[,] matrix = new int[4, 2] {
- {1, 2}, // 0 строка
- {3, 4}, // 1 строка
- {5, 6}, // 2 строка
- {7, 8} // 3 строка
- };
- // Вывод матрицы на экран
- PrintMatrix(matrix);
- // Создаётся новая матрица со всеми строками, кроме второй (последнее число в следующей строке). Индексация строк идёт с нуля.
- int[,] newMatrix = RemoveLineFromMatrix(matrix, 2);
- // Вывод матрицы на экран
- PrintMatrix(newMatrix);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement