Advertisement
TwinFrame

Edit Massive (ver 1)

Jan 13th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.37 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Clight_12_massive_01
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. bool isOpen = true;
  10. bool goodNumMenu;
  11. bool goodNumMassive;
  12. bool goodLine;
  13. bool goodRow;
  14. int userMenu = 0;
  15. int userNumLine = 0;
  16. int userNumRow = 0;
  17. int[,] userMassive = new int[10, 10];
  18. Random random = new Random();
  19. string numMenuString = "";
  20. string userNumLineString;
  21. string userNumRowString;
  22. int chooseLine;
  23. int chooseRow;
  24. int sumLine;
  25. int sumRow;
  26.  
  27.  
  28. Console.WriteLine("Приветствуем вас в конструкторе массива.\nВерсия 1.0\n");
  29. Console.WriteLine("\nС целью визуальной гаромноичности, массив создается из чисел от 0 до 9");
  30. Console.WriteLine("\n\nДля входа в меню нажмите любую клавишу.");
  31. Console.ReadKey();
  32. Console.Clear();
  33.  
  34. while (isOpen == true)
  35. {
  36. // Вывод текущих значений массива
  37. Console.SetCursorPosition(0, 19);
  38. Console.WriteLine($"Текущий массив {userMassive.GetLength(0)}х{userMassive.GetLength(1)}:\n");
  39. for (int i = 0; i < userMassive.GetLength(0); i++)
  40. {
  41. for (int j = 0; j < userMassive.GetLength(1); j++)
  42. {
  43. Console.Write($"{userMassive[i, j]} ");
  44. }
  45. Console.WriteLine();
  46. }
  47.  
  48. // Вывод основного меню и проверка на ошибку ввода
  49. goodNumMenu = false;
  50. while (goodNumMenu == false)
  51. {
  52. Console.SetCursorPosition(0, 0);
  53. Console.WriteLine("Основное Меню:\n");
  54. Console.WriteLine("1 - Создание нового массива. Максимум 10х10.");
  55. Console.WriteLine("2 - Вычислить сумму строки массива.");
  56. Console.WriteLine("3 - Вычислить произведение столбца массива.");
  57. Console.WriteLine("4 - Найти наибольший элемент матрицы и заменить его на 0.");
  58. Console.WriteLine("5 - Выход.");
  59. Console.Write("\nВыберете пункт меню: ");
  60. numMenuString = Console.ReadLine();
  61.  
  62. switch(numMenuString)
  63. {
  64. case "1":
  65. case "2":
  66. case "3":
  67. case "4":
  68. case "5":
  69. goodNumMenu = true;
  70. break;
  71. default:
  72. Console.ForegroundColor = ConsoleColor.DarkRed;
  73. Console.WriteLine("\nНе корректный запрос.");
  74. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  75. Console.ForegroundColor = ConsoleColor.White;
  76. Console.ReadKey();
  77. break;
  78. }
  79. break;
  80. }
  81.  
  82. //Выполнение действий меню
  83. Console.SetCursorPosition(0, 9);
  84. switch (numMenuString)
  85. {
  86. case "1":
  87. goodNumMassive = false;
  88. goodLine = false;
  89. goodRow = false;
  90. while (goodNumMassive == false)
  91. {
  92. Console.Write("Введите количество строк (максимум 10): ");
  93. userNumLineString = Console.ReadLine();
  94. switch (userNumLineString)
  95. {
  96. case "1":
  97. case "2":
  98. case "3":
  99. case "4":
  100. case "5":
  101. case "6":
  102. case "7":
  103. case "8":
  104. case "9":
  105. case "10":
  106. userNumLine = Convert.ToInt32(userNumLineString);
  107. goodLine = true;
  108. break;
  109. }
  110. Console.Write("Введите количество столбцов (максимум 10): ");
  111. userNumRowString = Console.ReadLine();
  112.  
  113. switch (userNumRowString)
  114. {
  115. case "1":
  116. case "2":
  117. case "3":
  118. case "4":
  119. case "5":
  120. case "6":
  121. case "7":
  122. case "8":
  123. case "9":
  124. case "10":
  125. userNumRow = Convert.ToInt32(userNumRowString);
  126. goodRow = true;
  127. break;
  128. }
  129. if (goodLine == true && goodRow == true)
  130. {
  131. goodNumMassive = true;
  132. }
  133. else
  134. {
  135. Console.ForegroundColor = ConsoleColor.DarkRed;
  136. Console.WriteLine("\nНе корректный запрос.");
  137. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  138. Console.ForegroundColor = ConsoleColor.White;
  139. Console.ReadKey();
  140. break;
  141. }
  142.  
  143. }
  144.  
  145. int[,] tempMassive = new int[userNumLine, userNumRow];
  146. for (int i = 0; i < userNumLine; i++)
  147. {
  148. for (int j = 0; j < userNumRow; j++)
  149. {
  150. tempMassive[i, j] = random.Next(0, 10);
  151. }
  152. }
  153. userMassive = tempMassive;
  154. break;
  155.  
  156.  
  157. case "2":
  158. Console.Write("Введите номер строки: ");
  159. chooseLine = Convert.ToInt32(Console.ReadLine());
  160.  
  161. sumLine = 0;
  162. if (chooseLine > 0 && chooseLine <= userMassive.GetLength(0))
  163. {
  164. for (int i = 0; i < userMassive.GetLength(1); i++)
  165. sumLine += userMassive[chooseLine - 1, i];
  166. }
  167. else
  168. {
  169. Console.ForegroundColor = ConsoleColor.DarkRed;
  170. Console.WriteLine("\nНе корректный запрос. Максимальный номер строки: " + userMassive.GetLength(0));
  171. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  172. Console.ForegroundColor = ConsoleColor.White;
  173. Console.ReadKey();
  174. break;
  175. }
  176.  
  177. Console.WriteLine("\nСумма " + chooseLine + " строки = " + sumLine);
  178. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  179. Console.ReadKey();
  180. break;
  181.  
  182.  
  183. case "3":
  184. Console.Write("Введите номер столбца: ");
  185. chooseRow = Convert.ToInt32(Console.ReadLine());
  186.  
  187. sumRow = 1;
  188. if (chooseRow > 0 && chooseRow <= userMassive.GetLength(1))
  189. {
  190. for (int i = 0; i < userMassive.GetLength(0); i++)
  191. sumRow *= userMassive[i , chooseRow - 1];
  192. }
  193. else
  194. {
  195. Console.ForegroundColor = ConsoleColor.DarkRed;
  196. Console.WriteLine("\nНе корректный запрос. Максимальный номер столбца: " + userMassive.GetLength(1));
  197. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  198. Console.ForegroundColor = ConsoleColor.White;
  199. Console.ReadKey();
  200. break;
  201. }
  202.  
  203. Console.WriteLine("\nПроизведение " + chooseRow + " столбца = " + sumRow);
  204. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  205. Console.ReadKey();
  206. break;
  207.  
  208.  
  209. case "4":
  210. int[,] tempMaxElement = userMassive;
  211. int maxElement = int.MinValue;
  212.  
  213. // находим элемент массива с максимальным значением
  214. for (int i = 0; i < tempMaxElement.GetLength(0); i++)
  215. {
  216. for (int j = 0; j < tempMaxElement.GetLength(1); j++)
  217. {
  218. if (maxElement < tempMaxElement[i, j])
  219. {
  220. maxElement = tempMaxElement[i, j];
  221. }
  222. }
  223. }
  224. // заменяем макс. элементы массива на 0
  225. for (int i = 0; i < tempMaxElement.GetLength(0); i++)
  226. {
  227. for (int j = 0; j < tempMaxElement.GetLength(1); j++)
  228. {
  229. if (maxElement == tempMaxElement[i, j])
  230. {
  231. tempMaxElement[i, j] = 0;
  232. }
  233. }
  234. }
  235. Console.WriteLine("\nЗначение максимального элемента = " + maxElement);
  236. Console.WriteLine("\nДля возврата в меню нажмите любую клавишу.");
  237. Console.SetCursorPosition(23, 19);
  238. Console.WriteLine($"Массив с заменой макс. элемента на 0:");
  239. for (int i = 0; i < tempMaxElement.GetLength(0); i++)
  240. {
  241. for (int j = 0; j < tempMaxElement.GetLength(1); j++)
  242. {
  243. Console.SetCursorPosition(23 + j*2, 21 + i);
  244. Console.Write($"{tempMaxElement[i, j]} ");
  245. }
  246. Console.WriteLine();
  247. }
  248. Console.SetCursorPosition(0, 0);
  249. Console.ReadKey();
  250. break;
  251. }
  252. Console.Clear();
  253. }
  254. }
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement