Advertisement
Guest User

Untitled

a guest
Nov 16th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.70 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. /// <summary>
  5. /// Самостоятельная работа
  6. /// Адышев Барсбек БПИ1911
  7. /// 16.11.2019
  8. /// </summary>
  9. namespace AdyshevB1911_
  10. {
  11. class Program
  12. {
  13. static Random rd = new Random();
  14. static void Main(string[] args)
  15. {
  16. do
  17. {
  18. Console.Clear();
  19. int N = Check();
  20. int K = Check();
  21. string[,] array_1 = new string[N, K];
  22. array_1 = EmptyArray(array_1, N, K);
  23. array_1 = Array(array_1, N, K);
  24. ShowArray(array_1, N, K);
  25. WaterDigit(array_1, N, K);
  26. Console.WriteLine("Если хотите продолжить, нажмите любую клавишу.В противном случае нажмите Escape");
  27. }
  28. while (Console.ReadKey().Key != ConsoleKey.Escape);
  29. }
  30.  
  31.  
  32. /// <summary>
  33. /// Метод возвращает массив заполненный рандомным количеством иксов без полостей.
  34. /// </summary>
  35. /// <param name="array_1"> Массив для заполнения иксами. </param>
  36. /// <param name="n"> Количество строк массива. </param>
  37. /// <param name="k">Количество столбцов массива. </param>
  38. /// <returns>Возвращает заполненный иксами массив. </returns>
  39. static string[,] Array(string[,] array_1, int n, int k)
  40. {
  41. for (int j = 0; j < k; j++)
  42. for (int i = rd.Next(0, n + 1); i < n; i++)
  43. { array_1[i, j] = "x"; }
  44. return array_1;
  45. }
  46. /// <summary>
  47. /// Метод заполняет массив пробелами.
  48. /// </summary>
  49. /// <param name="array_1"> Необходимый для заполнения пробелами массив. </param>
  50. /// <param name="n"> Количество строк массива. </param>
  51. /// <param name="k">Количество столбцов массива. </param>
  52. /// <returns> Возвращает заполненный пробелами массив .</returns>
  53. static string[,] EmptyArray(string[,] array_1, int n, int k)
  54. {
  55. for (int i = 0; i < n; i++)
  56. for (int j = 0; j < k; j++)
  57. { array_1[i, j] = " "; }
  58. return array_1;
  59.  
  60. }
  61. /// <summary>
  62. /// Метод выводит в консоль все элементы полученного на входе массива.
  63. /// </summary>
  64. /// <param name="array"> Массив, который нужно отобразить в консоли.</param>
  65. /// <param name="n"> Количество строк массива. </param>
  66. /// <param name="k"> Количество столбцов массива. </param>
  67. static void ShowArray(string[,] array, int n, int k)
  68. {
  69. for (int i = 0; i < n; i++)
  70. {
  71. for (int j = 0; j < k; j++)
  72. { Console.Write(array[i, j]); }
  73. Console.WriteLine();
  74. }
  75. }
  76.  
  77. /// <summary>
  78. /// Метод возвращает число, а именно количество так называемой "воды".
  79. /// </summary>
  80. /// <param name="array"></param>
  81. /// <param name="n"></param>
  82. /// <param name="k"></param>
  83. /// <returns></returns>
  84. static void WaterDigit(string[,] array, int n, int k)
  85. {
  86. int amount = 0;
  87. string sign = "?";
  88. int answer = 0;
  89. for (int i = n - 1; i > 0; i--)
  90. {
  91. amount = 0;
  92. sign = "?";
  93. for (int j = k - 1; j > -1; j--)
  94. {
  95.  
  96. if (array[i, j] == "x")
  97. {
  98. if (sign == "x")
  99. answer += amount;
  100. sign = "x";
  101. amount = 0;
  102. }
  103. else if (sign == "x")
  104. {
  105. amount++;
  106. array[i, j] = "x";
  107. }
  108. }
  109. }
  110. Console.WriteLine(answer);
  111.  
  112. }
  113. /// <summary>
  114. /// FormatException - выводит ошибку при неверном формате ввода данных
  115. /// ArgumentNullException - выводит ошибку при отсутствии ввода пользователем.
  116. /// StackoverFlowException - выводит ошибку при недостатке активной памяти компьютера.
  117. /// Создается меню по принципам проверки введенных пользователем данных.Метод приводит пользователя к правильному введению данных (формата и т.д ) путем выведения сооющений на экран.
  118. ///
  119. ///
  120. /// </summary>
  121. /// <returns>2Возвращает длину массива введенного пользователем.</returns>
  122. static int Check()
  123. {
  124. Console.Write("Введите число: ");
  125. int num;
  126. while (true)
  127. {
  128. try
  129. {
  130. num = int.Parse(Console.ReadLine());
  131. if (num <= 0 || num >= 100)
  132. throw new ArgumentException();
  133. break;
  134.  
  135. }
  136. catch (FormatException)
  137. {
  138. Console.WriteLine("Неправильный формат! Введите нормальное число.");
  139. }
  140. catch (ArgumentNullException)
  141. {
  142. Console.WriteLine("Введите число. Введите нормальное число.");
  143. }
  144. catch (OverflowException)
  145. {
  146. Console.WriteLine("Стек переполнен! Введите нормальное число");
  147. }
  148. catch (ArgumentException)
  149. {
  150. Console.WriteLine($"Границы [1;100 ]. Введите число,входящее в границы!");
  151. }
  152.  
  153.  
  154. }
  155. return (num);
  156. }
  157.  
  158.  
  159.  
  160. }
  161.  
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement