Advertisement
Guest User

Untitled

a guest
Mar 1st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.49 KB | None | 0 0
  1. namespace ConsoleApplication18
  2. {
  3. class Dialog
  4. {
  5. public static void PrintMenu0()
  6. {
  7. Console.WriteLine("1.Работа с двумерным массивом");
  8. Console.WriteLine("2.Работа со строкой");
  9. Console.WriteLine("3.Выход");
  10. }
  11. public static void PrintMenu1()
  12. {
  13. Console.WriteLine("1.Создать двумерный массив");
  14. Console.WriteLine("2.Напечатать массив");
  15. Console.WriteLine("3.Удалить из массива первую строку, в которой есть хотя бы один элемент равный 0");
  16. Console.WriteLine("4.Выход");
  17. }
  18. public static void PrintMenu2()
  19. {
  20. Console.WriteLine("1.Формирование массива вручную");
  21. Console.WriteLine("2.Формирование массива с помощью ДСЧ");
  22. Console.WriteLine("3.Назад");
  23. }
  24. public static void PrintMenu3()
  25. {
  26. Console.WriteLine("1.Формирование строк вручную");
  27. Console.WriteLine("2.Формирование строки из заранее сформированного массива строк");
  28. Console.WriteLine("3.Перевернуть каждое четное слово в строке");
  29. Console.WriteLine("4.Выход");
  30. }
  31. public static int InputNumber(string rs, int min_n, int max_n)
  32. {
  33. int num = 0;
  34. bool ok = false;
  35. do
  36. {
  37. try
  38. {
  39. Console.WriteLine(rs);
  40. num = Convert.ToInt32(Console.ReadLine());
  41. if (num >= min_n && num < max_n) ok = true;
  42. else ok = false;
  43. }
  44. catch (FormatException)
  45. {
  46. Console.WriteLine("Ошибка ввода");
  47. ok = false;
  48. }
  49. catch (OverflowException)
  50. {
  51. Console.WriteLine("Ошибка ввода");
  52. ok = false;
  53. }
  54. } while (!ok);
  55. return num;
  56. }
  57. }
  58. class Program
  59. {
  60. const int min_n = 1;
  61. const int max_n = 100;
  62. static bool ConsoleFormMatr(out int string_n, out int column_n, out double[,] matr)
  63. {
  64. int i, j;
  65. string_n = Dialog.InputNumber("Введите количество строк матрицы", min_n, max_n);
  66. column_n = Dialog.InputNumber("Введите количество столбцов матрицы", min_n, max_n);
  67. matr = new double [string_n, column_n];
  68. for (i = 0; i < string_n; i++)
  69. for (j = 0; j < column_n; j++)
  70. {
  71. matr[i,j]= Dialog.InputNumber("Введите элемент матрицы", -10, 10);
  72.  
  73. }
  74. Console.WriteLine("Массив создан");
  75. return true;
  76. }
  77. static bool RandomFormMatr(out int string_n, out int column_n, out double[,] matr)
  78. {
  79. int i, j;
  80. Random rnd = new Random();
  81. string_n = Dialog.InputNumber("Введите количество строк матрицы", min_n, max_n);
  82. column_n = Dialog.InputNumber("Введите количество столбцов матрицы", min_n, max_n);
  83. matr = new double[string_n, column_n];
  84. for (i = 0; i < string_n; i++)
  85. for (j = 0; j < column_n; j++)
  86. {
  87. matr[i, j] = rnd.Next(-100,100);
  88. }
  89. Console.WriteLine("Массив создан");
  90. return true;
  91. }
  92. static void PrintArray(int string_n, int column_n, double[,] matr)
  93. {
  94. int i, j;
  95. for (i = 0; i < string_n; i++)
  96. {
  97. for (j = 0; j < column_n; j++)
  98. Console.Write(matr[i, j].ToString() + " ");
  99. Console.WriteLine();
  100. }
  101. }
  102.  
  103. static void DeleteStringFromMatr(ref double[,] matr, ref int string_n, ref int column_n)
  104. {
  105. if (string_n == 0) Console.WriteLine("Массив пуст. Создайте массив!");
  106. else
  107. {
  108. int i, j, a = -1;
  109. int string_n1 = string_n - 1;
  110. for (i = 0; i < string_n; i++)
  111. {
  112. for (j = 0; j < column_n; j++)
  113. if (matr[i, j] == 0)
  114. {
  115. string_n = string_n1;
  116. a = i;
  117. break;
  118. }
  119. if (a > -1) break;
  120. }
  121. if (a > -1)
  122. {
  123. for (i = a; i < string_n1; i++)
  124. {
  125. for (j = 0; j < column_n; j++)
  126. matr[i, j] = matr[i + 1, j];
  127. }
  128. for (i = 0; i < string_n; i++)
  129. {
  130. for (j = 0; j < column_n; j++)
  131. Console.Write(matr[i, j].ToString() + " ");
  132. Console.WriteLine();
  133. }
  134. }
  135. else Console.WriteLine("Нулей в массиве нет");
  136. }
  137. }
  138. static bool ConsoleFormArray(out string str)
  139. {
  140.  
  141. Console.WriteLine("Введите строку");
  142. str = Console.ReadLine();
  143. if ((str == "") || (str == " "))
  144. {
  145. Console.WriteLine("Введена пустая строка.Повторите ввод!");
  146. return false;
  147. }
  148. for (int i = 0; i < str.Length - 1; i++)
  149. {
  150. if (!Prov(str))
  151. {
  152. Console.WriteLine("Неправильный ввод. Строка не может содержать два и более знаков между словами");
  153. return false;
  154. }
  155. }
  156. return true;
  157. }
  158. public static bool Prov(string str)
  159. {
  160. for (int i = 0; i < str.Length - 1; i++)
  161. {
  162. if (str[i] == (' ' | ',' | '!' | '?' | '.' | ';' | ':')) { if (str[i + 1] == (' ' | ',' | '!' | '?' | '.' | ';' | ':')) { return false; } }
  163. }
  164. return true;
  165. }
  166. public static bool StringForms(ref string str)
  167. {
  168. char[] stroka1 = { 'А', 'н', 'я', ' ', 'б', 'о', 'л', 'ь', 'ш', 'а', 'я', ' ', 'у', 'м', 'н', 'и', 'ц', 'а',' ', '!' };
  169. char[] stroka2 = { 'К', 'а', 'т', 'а', 'р', 'и', 'н', 'а', ' ', 'л', 'у', 'ч', 'ш', 'е', ' ', 'в', 'с', 'е', 'х', ' ', '!' };
  170. char[] stroka3 = { 'Ж', 'е', 'н', 'я', ' ', 'р', 'ы', 'ж', 'и', 'й', ' ', '?' };
  171. Console.WriteLine("1.Выбери строку 1: Аня большая умница!");
  172. Console.WriteLine("2.Выбери строку 2:Катарина лучше всех!");
  173. Console.WriteLine("3.Выбери строку 3:Женя рыжий?");
  174. Console.WriteLine("4.Вернуться в меню");
  175. int a = 1;
  176.  
  177. do
  178. {
  179. a = Convert.ToInt32(Console.ReadLine());
  180. switch (a)
  181. {
  182. case 1:
  183. {
  184. str = new string(stroka1);
  185. Console.WriteLine(str);
  186. Console.WriteLine("Строка создана");
  187. break;
  188. }
  189. case 2:
  190. {
  191. str = new string(stroka2);
  192. Console.WriteLine(str);
  193. Console.WriteLine("Строка создана");
  194. break;
  195. }
  196. case 3:
  197. {
  198. str = new string(stroka3);
  199. Console.WriteLine(str);
  200. Console.WriteLine("Строка создана");
  201. break;
  202. }
  203. case 4: break;
  204. default: Console.WriteLine("Нет такого пункта в меню"); break;
  205. }
  206. } while (a == 0);
  207. return true;
  208. }
  209. static string[] ReverseString(ref string str)
  210. {
  211. int k;
  212. for (k = 0; k < str.Length-1; k++)
  213. if (str[k] == (' '|','|'.'|'!'|'?'|';') && str[k + 1] ==( ' '|','|'.'|'!'|'?'|';'))
  214. {
  215. str = str.Remove(k, 1);
  216. k--;
  217. }
  218. char[] znaki = { ' ',';', ':', '.', ',','?','!'};
  219. string znak = new string(znaki);
  220. string[] art = str.Split(znaki);
  221. for (k = 1; k < art.Length; k += 2)
  222. {
  223. char[] array = art[k].ToCharArray();
  224. Array.Reverse(array);
  225. art[k] = new string(array);
  226.  
  227. }
  228. string str1 = "";
  229. for (int i = 0; i < art.Length; i++)
  230. {
  231. str1 += art[i];
  232. str1 += " ";
  233. }
  234.  
  235. str = str1;
  236. str = str.Trim();
  237. for (k = 0; k < str.Length - 1; k++)
  238. if (str[k] ==' ' && str[k + 1] ==' ')
  239. {
  240. str = str.Remove(k, 1);
  241. k--;
  242. }
  243. Console.WriteLine(str);
  244. return art;
  245. }
  246. static void Matr()
  247. {
  248. bool createMatr = false;
  249. int politop, formMatr;
  250. double[,] matr = new double[0, 0];
  251. int string_n = 0, column_n = 0;
  252. do
  253. {
  254. Dialog.PrintMenu1();
  255. politop = Convert.ToInt32(Console.ReadLine());
  256. switch (politop)
  257. {
  258. case 1:
  259. {
  260. Dialog.PrintMenu2();
  261. formMatr = Convert.ToInt32(Console.ReadLine());
  262. switch (formMatr)
  263. {
  264. case 1:
  265. {
  266. createMatr = ConsoleFormMatr(out string_n, out column_n, out matr);
  267. break;
  268. }
  269. case 2:
  270. {
  271. createMatr = RandomFormMatr(out string_n, out column_n, out matr);
  272. break;
  273. }
  274. default: Console.WriteLine("Такого пункта в меню нет"); break;
  275. }
  276. break;
  277. }
  278. case 2:
  279. {
  280. if (createMatr) PrintArray(string_n, column_n, matr);
  281. else Console.WriteLine("массив не создан");
  282. break;
  283. }
  284. case 3:
  285. {
  286. if (createMatr) DeleteStringFromMatr(ref matr, ref string_n, ref column_n);
  287. else Console.WriteLine("массив не создан");
  288. break;
  289. }
  290. case 4: break;
  291. default: Console.WriteLine("Нет такого пункта в меню"); break;
  292. }
  293. } while (politop != 4);
  294.  
  295. }
  296. static void Stroka()
  297. {
  298. bool createString = false;
  299. int politop;
  300. string str=" ";
  301. do
  302. {
  303. Dialog.PrintMenu3();
  304. politop = Convert.ToInt32(Console.ReadLine());
  305. switch (politop)
  306. {
  307. case 1:
  308. {
  309. do
  310. {
  311. createString = ConsoleFormArray(out str);
  312. } while (createString != true);
  313. break;
  314. }
  315. case 2:
  316. {
  317. createString = StringForms(ref str);
  318. break;
  319. }
  320.  
  321. case 3:
  322. {
  323. if (createString) ReverseString(ref str);
  324. else Console.WriteLine("Строка не создана");
  325. break;
  326. }
  327. case 4: break;
  328. default: Console.WriteLine("Нет такого пункта в меню"); break;
  329. }
  330. } while (politop != 4);
  331. }
  332.  
  333. static void Main(string[] args)
  334. {
  335. int politop;
  336. do
  337. {
  338. Dialog.PrintMenu0();
  339. politop = Convert.ToInt32(Console.ReadLine());
  340. switch (politop)
  341. {
  342. case 1:
  343. {
  344. Matr();
  345. break;
  346. }
  347. case 2:
  348. {
  349. Stroka();
  350. break;
  351. }
  352. case 3: break;
  353. default: Console.WriteLine("Нет такого пункта в меню"); break;
  354. }
  355. } while (politop != 3);
  356. Console.ReadKey();
  357.  
  358. }
  359. }
  360. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement