Advertisement
Guest User

Untitled

a guest
May 20th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. using System;
  2.  
  3. namespace lab3
  4. {
  5. class Matrix
  6. {
  7. protected int[,] mat;
  8. protected int n;
  9.  
  10. protected Matrix(int n)
  11. {
  12. this.n = n;
  13. }
  14.  
  15. protected void CreateMatrix()
  16. {
  17. mat = new int[n, n];
  18. Random Ran = new Random(unchecked((int)(DateTime.Now.Ticks)));
  19. for (int i = 0; i < n; i++)
  20. {
  21. for (int j = 0; j < n; j++)
  22. {
  23. mat[i, j] = Ran.Next(-10, 10);
  24. }
  25.  
  26. }
  27. Console.WriteLine("Матрица: ");
  28. for (int i = 0; i < n; i++)
  29. {
  30. for (int j = 0; j < n; j++)
  31. {
  32. Console.Write("{0} ", mat[i, j]);
  33. }
  34. Console.WriteLine();
  35. }
  36. }
  37. }
  38.  
  39. class WorkMatrix : Matrix
  40. {
  41. bool isGrow;
  42. int countNulls;
  43. int numColomn;
  44.  
  45. public WorkMatrix(int n)
  46. : base(n)
  47. {
  48. isGrow = false;
  49. numColomn = -1;
  50. }
  51.  
  52. public void IsGrow()
  53. {
  54. CreateMatrix();
  55.  
  56. for (int j = 0; j < (n - 1); j++)
  57. {
  58.  
  59. if (mat[0, j] > mat[0, j + 1])
  60. {
  61. FindColomnWithMaxCountNulls();
  62. return;
  63. }
  64. else if (j + 1 == (n - 1))
  65. {
  66. CountNull();
  67. isGrow = true;
  68. }
  69.  
  70. }
  71. }
  72.  
  73. int CountNullsOfColomn(int numCol)
  74. {
  75. int c = 0;
  76. for (int i = 0; i < n; i++)
  77. {
  78. if (mat[i, numCol] == 0)
  79. c++;
  80. }
  81. return c;
  82. }
  83.  
  84. void FindColomnWithMaxCountNulls()
  85. {
  86. int[] arr = new int[n];
  87. for (int i = 0; i < n; i++)
  88. {
  89. arr[i] += CountNullsOfColomn(i);
  90. }
  91.  
  92. int max = 0;
  93.  
  94. for (int j = 0; j < n; j++)
  95. {
  96. if (arr[j] > max)
  97. {
  98. max = j + 1;
  99. }
  100. }
  101.  
  102. if (max != 0 || CountNullsOfColomn(0) > 0)
  103. {
  104. numColomn = max;
  105. }
  106. }
  107.  
  108. void CountNull()
  109. {
  110. for (int i = 0; i < n; i++)
  111. {
  112. countNulls += CountNullsOfColomn(i);
  113. }
  114. }
  115.  
  116. public void Show()
  117. {
  118.  
  119. if (isGrow)
  120. {
  121. Console.WriteLine("Число нулевых элементов во всей матрице: {0}", countNulls);
  122. return;
  123. }
  124. else if (numColomn != -1)
  125. {
  126. Console.WriteLine("Cтолбец с максимальным количеством нулей: {0}", numColomn);
  127. return;
  128. }
  129. else
  130. Console.WriteLine("Столбцы заданной прямоугольной целочисленной матрицы НЕ расположены в порядке возрастания числа нулевых элементов в них и в матрице нет нулей");
  131.  
  132. }
  133.  
  134. }
  135.  
  136. class Program
  137. {
  138. static void Main(string[] args)
  139. {
  140. Console.Write("Введите размерность квадратной матрицы : ");
  141. int n = Convert.ToInt32(Console.ReadLine());
  142.  
  143. WorkMatrix inst = new WorkMatrix(n);
  144. inst.IsGrow();
  145.  
  146. inst.Show();
  147. Console.ReadKey();
  148. }
  149. }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement