Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.55 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Arrays
  4. {
  5. class Program
  6. {
  7. static void Main()
  8. {
  9. Console.WriteLine("Первый метод - копирование элементов из Первого массива: ");
  10. Console.WriteLine();
  11.  
  12. Console.WriteLine("Введите первое число: ");
  13. int number1 = int.Parse(Console.ReadLine());
  14. Console.WriteLine();
  15.  
  16. Console.WriteLine("Введите второе число: ");
  17. int number2 = int.Parse(Console.ReadLine());
  18. Console.WriteLine();
  19.  
  20. var length1 = LengthForArray(number1);
  21. var length2 = LengthForArray(number2);
  22.  
  23. var array1 = ToArray(number1, length1);
  24. var array2 = ToArray(number2, length2);
  25.  
  26. var arrayCopy = ToCopyArray(array1);
  27. var arrayInsert = InsertInToArray(array2, arrayCopy);
  28.  
  29. ToPrintArray(arrayInsert);
  30. var lengthForStars = 120;
  31. DrawStars(lengthForStars);
  32.  
  33. Console.WriteLine("Второй метод - вставка произвольного элемента в произвольную позицию, в массив из Первого метода:");
  34. Console.WriteLine();
  35. var arrayBeforeInsertElement = InsertElementToArray(arrayInsert);
  36. ToPrintArray(arrayBeforeInsertElement);
  37. DrawStars(lengthForStars);
  38.  
  39. Console.WriteLine("Третий метод - удаление произвольного элемента, из массива во Втором методе: ");
  40. Console.WriteLine();
  41. var arrayBeforeDeleteElement = DeleteElementInToArray(arrayBeforeInsertElement);
  42.  
  43. Console.WriteLine();
  44. ToPrintArray(arrayBeforeDeleteElement);
  45. DrawStars(lengthForStars);
  46.  
  47. Console.ReadKey();
  48. }
  49.  
  50. /// <summary>
  51. /// Вычисление длины числа
  52. /// </summary>
  53. /// <param name="number">Число</param>
  54. /// <returns>Длина числа</returns>
  55. static byte LengthForArray(int number)
  56. {
  57. byte length = 0;
  58. if (number == 0) length = 1; // если 1-е и 2-е числа = 0 => длина = 1
  59. while (number != 0)
  60. {
  61. number /= 10;
  62. length++;
  63. }
  64. return length;
  65. }
  66.  
  67. /// <summary>
  68. /// Преобразование числа в массив
  69. /// </summary>
  70. /// <param name="number">Число</param>
  71. /// <param name="length">Длина числа</param>
  72. /// <returns>Массив</returns>
  73. static byte[] ToArray(int number, byte length)
  74. {
  75. int value = number;
  76. byte lengthArr = length;
  77.  
  78. byte[] array = new byte[lengthArr--];
  79. while (value != 0)
  80. {
  81. array[lengthArr--] = (byte)(value % 10);
  82. value /= 10;
  83. }
  84. return array;
  85. }
  86.  
  87. /// <summary>
  88. /// Копирование определенного кол-ва элементов из 1-го массива
  89. /// </summary>
  90. /// <param name="array">Массив</param>
  91. /// <returns>Массив из скопированых элементов</returns>
  92. static byte[] ToCopyArray(byte[] array)
  93. {
  94. Console.WriteLine("Введите начальный элемент для копирования: от 0 до {0}", (array.Length - 1));
  95. byte position1 = byte.Parse(Console.ReadLine());
  96.  
  97. Console.WriteLine("Введите конечный элемент для копирования: от " + position1 + " до " + (array.Length - 1));
  98. byte position2 = byte.Parse(Console.ReadLine());
  99.  
  100. byte length = (byte)array.Length;
  101.  
  102. byte lengthCopy = (byte)(position2 - position1 + 1);
  103. byte[] arrayCopy = new byte[lengthCopy];
  104.  
  105. for (byte i = 0; i < lengthCopy; i++)
  106. {
  107. arrayCopy[i] = array[i + position1];
  108. }
  109.  
  110. return arrayCopy;
  111. }
  112.  
  113. /// <summary>
  114. /// Вставка массива, состоящего из скопированных элементов в 1-м массиве, во 2-й массив(в опр-ю позицию)
  115. /// </summary>
  116. /// <param name="array2">Второй Массив</param>
  117. /// <param name="arrayCopy">Массив состоящий из скопированных элементов из 1-го массива</param>
  118. /// <returns>Массив после вставки во 2-й массив</returns>
  119. static byte[] InsertInToArray(byte[] array2, byte[] arrayCopy)
  120. {
  121. Console.WriteLine("Введите номер элемента с которого начнется втавка: от 0 до {0} ", (array2.Length - 1));
  122. byte position = byte.Parse(Console.ReadLine());
  123. Console.WriteLine();
  124.  
  125. byte lengthCopy = (byte)arrayCopy.Length;
  126. byte length2 = (byte)array2.Length;
  127.  
  128. byte lengthForNewArray = (byte)(length2 + lengthCopy);
  129.  
  130. byte[] array = new byte[lengthForNewArray];
  131.  
  132. for (byte i = 0; i < length2; i++)
  133. {
  134. array[i] = array2[i];
  135. }
  136.  
  137. for (byte i = 0; i < lengthCopy; i++)
  138. {
  139. array[i + position] = arrayCopy[i];
  140. }
  141.  
  142. for (byte i = position; i < length2; i++)
  143. {
  144. array[i + lengthCopy] = array2[i];
  145. }
  146. Console.WriteLine("Готовый:");
  147. return array;
  148. }
  149.  
  150. /// <summary>
  151. /// Вставка произвольного числа в произвольную позицию в массиве
  152. /// </summary>
  153. /// <param name="array">Массив</param>
  154. /// <returns>Массив после вставки числа</returns>
  155. static byte[] InsertElementToArray(byte[] array)
  156. {
  157. Console.WriteLine("Массив: ");
  158. ToPrintArray(array);
  159.  
  160. Console.WriteLine("Введите элемент, для последующей вставки его в массив");
  161. byte element = byte.Parse(Console.ReadLine());
  162. var lengthElement = LengthForArray(element);
  163.  
  164. var arrayElement = ToArray(element, lengthElement);
  165. var lengthArrayElement = arrayElement.Length;
  166.  
  167. byte length = (byte)array.Length;
  168.  
  169. var lengthArrayNew = length + 1;
  170. var arrayNew = new byte[lengthArrayNew];
  171.  
  172. Console.WriteLine("Введите позицию для вставки произвольного элемента в массив, от 0 до {0} ", length - 1);
  173. byte position = byte.Parse(Console.ReadLine());
  174.  
  175. for (int i = 0; i < length; i++)
  176. {
  177. arrayNew[i] = array[i];
  178. }
  179. for (int i = 0; i < lengthArrayElement; i++)
  180. {
  181. arrayNew[i + position] = arrayElement[i];
  182. }
  183. for (int i = position; i < length; i++)
  184. {
  185. arrayNew[i + lengthArrayElement] = array[i];
  186. }
  187. Console.WriteLine();
  188. Console.WriteLine("Готовый:");
  189. return arrayNew;
  190. }
  191.  
  192. /// <summary>
  193. /// Удаление произвольного элемента из массива
  194. /// </summary>
  195. /// <param name="array">Массив</param>
  196. /// <returns>Массив после удаления</returns>
  197. static byte[] DeleteElementInToArray(byte[] array)
  198. {
  199. Console.WriteLine("Массив: ");
  200. ToPrintArray(array);
  201.  
  202. var length = array.Length;
  203. Console.WriteLine("Введите номер элемента для его удаления из массива, от 0 до {0} ", length - 1);
  204. byte position = byte.Parse(Console.ReadLine());
  205.  
  206. var lengthNew = length - 1;
  207. var arrayNew = new byte[lengthNew];
  208.  
  209. for(int i = 0; i < position; i++)
  210. {
  211. arrayNew[i] = array[i];
  212. }
  213.  
  214. for(int i = position; i < lengthNew; i++)
  215. {
  216. arrayNew[i] = array[i + 1];
  217. }
  218. Console.WriteLine("Готовый:");
  219. return array;
  220. }
  221.  
  222. /// <summary>
  223. /// Печать Массива
  224. /// </summary>
  225. /// <param name="array">Массив</param>
  226. /// <returns>Массив</returns>
  227. static byte[] ToPrintArray(byte[] array)
  228. {
  229. //Console.WriteLine();
  230. for (int i = 0; i < array.Length; i++)
  231. Console.Write(array[i]);
  232. Console.WriteLine(); Console.WriteLine();
  233.  
  234. return array;
  235. }
  236.  
  237. /// <summary>
  238. /// Печать разделителя в виде "*"
  239. /// </summary>
  240. /// <param name="length">Длина - кол-во символов</param>
  241. static void DrawStars(int length)
  242. {
  243. for (int i = 0; i < length; i++)
  244. Console.Write("*");
  245. Console.WriteLine();
  246. }
  247. }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement