Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace lab3
- {
- class Matrix
- {
- protected int[,] mat;
- protected int n;
- protected Matrix(int n)
- {
- this.n = n;
- }
- protected void CreateMatrix()
- {
- mat = new int[n, n];
- Random Ran = new Random(unchecked((int)(DateTime.Now.Ticks)));
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- mat[i, j] = Ran.Next(-10, 10);
- }
- }
- Console.WriteLine("Матрица: ");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- Console.Write("{0} ", mat[i, j]);
- }
- Console.WriteLine();
- }
- }
- }
- class WorkMatrix : Matrix
- {
- bool isGrow;
- int countNulls;
- int numColomn;
- public WorkMatrix(int n)
- : base(n)
- {
- isGrow = false;
- numColomn = -1;
- }
- public void IsGrow()
- {
- CreateMatrix();
- for (int j = 0; j < (n - 1); j++)
- {
- if (mat[0, j] > mat[0, j + 1])
- {
- FindColomnWithMaxCountNulls();
- return;
- }
- else if (j + 1 == (n - 1))
- {
- CountNull();
- isGrow = true;
- }
- }
- }
- int CountNullsOfColomn(int numCol)
- {
- int c = 0;
- for (int i = 0; i < n; i++)
- {
- if (mat[i, numCol] == 0)
- c++;
- }
- return c;
- }
- void FindColomnWithMaxCountNulls()
- {
- int[] arr = new int[n];
- for (int i = 0; i < n; i++)
- {
- arr[i] += CountNullsOfColomn(i);
- }
- int max = 0;
- for (int j = 0; j < n; j++)
- {
- if (arr[j] > max)
- {
- max = j + 1;
- }
- }
- if (max != 0 || CountNullsOfColomn(0) > 0)
- {
- numColomn = max;
- }
- }
- void CountNull()
- {
- for (int i = 0; i < n; i++)
- {
- countNulls += CountNullsOfColomn(i);
- }
- }
- public void Show()
- {
- if (isGrow)
- {
- Console.WriteLine("Число нулевых элементов во всей матрице: {0}", countNulls);
- return;
- }
- else if (numColomn != -1)
- {
- Console.WriteLine("Cтолбец с максимальным количеством нулей: {0}", numColomn);
- return;
- }
- else
- Console.WriteLine("Столбцы заданной прямоугольной целочисленной матрицы НЕ расположены в порядке возрастания числа нулевых элементов в них и в матрице нет нулей");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Console.Write("Введите размерность квадратной матрицы : ");
- int n = Convert.ToInt32(Console.ReadLine());
- WorkMatrix inst = new WorkMatrix(n);
- inst.IsGrow();
- inst.Show();
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement