Sovun

Untitled

Dec 2nd, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.77 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp27
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int[] mas = null;
  10.             int size = 0;
  11.             int answer1, answer2;
  12.             bool ok;
  13.             Random rnd = new Random();
  14.  
  15.             do
  16.             {
  17.                 Console.WriteLine("\n1. Формирование массива. 2. Вывод массива. 3. Удаление из массива. 4. Добавление в массив. 5. Перестановка. 6. Поиск. 7. Сортировка. 8. Поиск в отсортированном массиве. 9. Выход");
  18.                 do
  19.                 {
  20.                     ok = int.TryParse(Console.ReadLine(), out answer1);
  21.                     if (ok == false)
  22.                     {
  23.                         Console.WriteLine("Ошибка при вводе числа");
  24.  
  25.                     }
  26.                 } while (ok == false);//!ok
  27.  
  28.                 switch (answer1)
  29.                 {
  30.                     case 1:
  31.                         {
  32.                             //формирование массива
  33.                             do
  34.                             {
  35.                                 Console.WriteLine("Введите количество элементов массива");
  36.                                 ok = int.TryParse(Console.ReadLine(), out size);
  37.                                 if (ok == false)
  38.                                 {
  39.                                     Console.WriteLine("Ошибка при вводе числа");
  40.                                 }
  41.                             } while (ok == false);//!ok
  42.                             mas = new int[size];
  43.  
  44.                             // меню для формирования массива
  45.                             do
  46.                             {
  47.                                 Console.WriteLine(@"1. С помощью ДСЧ. 2. Ввод с клавиатуры. 3. Выход");
  48.                                 do
  49.                                 {
  50.                                     ok = int.TryParse(Console.ReadLine(), out answer2);
  51.                                     if (ok == false)
  52.                                     {
  53.                                         Console.WriteLine("Ошибка при вводе числа");
  54.                                     }
  55.                                 } while (ok == false);//!ok
  56.                                 switch (answer2)
  57.                                 {
  58.                                     case 1:
  59.                                         {
  60.                                             //формирование ДСЧ
  61.                                             for (int i = 0; i < size; i++)
  62.                                                 mas[i] = rnd.Next(-100, 100);
  63.                                             Console.WriteLine("Массив сформирован");
  64.                                             break;
  65.                                         }
  66.                                     case 2:
  67.                                         {
  68.                                             //ввод массива с клавиатуры
  69.  
  70.                                             for (int i = 0; i < size; i++)
  71.                                             {
  72.                                                 do
  73.                                                 {
  74.                                                     Console.WriteLine("Введите  элемент массива");
  75.                                                     ok = int.TryParse(Console.ReadLine(), out mas[i]);
  76.                                                     if (ok == false)
  77.                                                     {
  78.                                                         Console.WriteLine("Ошибка при вводе числа");
  79.                                                     }
  80.                                                 } while (ok == false);//!ok
  81.                                                 Console.WriteLine("Массив сформирован");
  82.                                             }
  83.                                             //Console.WriteLine(mas[i] + " ");
  84.                                             break;
  85.                                         }
  86.                                 }
  87.                             } while (answer2 <= 2);
  88.                             break;
  89.                         }
  90.  
  91.                     case 2:
  92.                         {
  93.                             //печать массива
  94.                             if (size == 0) Console.WriteLine("Пустой массив");
  95.                             for (int i = 0; i < size; i++)
  96.                                 Console.Write(mas[i] + " ");
  97.                             Console.WriteLine();
  98.                             break;
  99.                         }
  100.  
  101.                     case 3:
  102.                         {
  103.                             //удаление элемента из массива ЧЕТНЫХ ЭЛЕМЕНТОВ
  104.                             if (size == 0)
  105.                             {
  106.                                 Console.WriteLine("Массив пустой, удаление невозможно");
  107.                                 break;
  108.                             }
  109.  
  110.                             int[] temp = new int[size - 1];
  111.                             int j = 0;
  112.                             for (int i = 0; i < size; i++)
  113.                             {
  114.                                 if (i != (size - 1))
  115.                                 {
  116.                                     temp[j] = mas[i];
  117.                                     j++;
  118.                                 }
  119.                             }
  120.                             mas = temp;
  121.                             size--;
  122.                             Console.WriteLine("Четные элементы удалены");
  123.  
  124.                             for (int i = 0; i < size; i += 2)
  125.                                 Console.Write(mas[i] + " ");
  126.                             Console.WriteLine();
  127.                             break;
  128.                         }
  129.  
  130.                     case 4:
  131.                         {
  132.                             //добавление N элементов, начиная с номера K
  133.                             int K, N, i = 0, u = 0, r, vibor, n = mas.Length;
  134.                             int[] mas1 = null;
  135.                             do
  136.                             {
  137.                                 Console.WriteLine("Введите номер, с которого нужно начать вводить переменные");
  138.                                 string buf = Console.ReadLine();
  139.                                 ok = int.TryParse(buf, out K);
  140.                                 if (!ok || K <= 0 || K > n + 1)
  141.                                     Console.WriteLine("Ошибка!");
  142.                             } while (!ok || K <= 0 || K > n + 1);
  143.                             Console.WriteLine("Номер равен: " + K);
  144.  
  145.                             do
  146.                             {
  147.                                 Console.WriteLine("Введите количество элементов");
  148.                                 string buf = Console.ReadLine();
  149.                                 ok = int.TryParse(buf, out N);
  150.                                 if (!ok || N <= 0) Console.WriteLine("Ошибка!");
  151.                             } while (!ok || N <= 0);
  152.                             K -= 1;
  153.                             //mas1 = new int[K + n];
  154.                             mas1 = new int[n + N];
  155.  
  156.                             //for (i = 0; i < n; i++)
  157.                             //{
  158.                             //    mas1[i] = mas[i];
  159.                             //} ЗОЧЕМ
  160.  
  161.                             Console.WriteLine("Выбери один из пунктов меню");
  162.                             Console.WriteLine("1 - Ввести числа самостоятельно");
  163.                             Console.WriteLine("2 - Ввести случайные числа");
  164.  
  165.                             do
  166.                             {
  167.                                 ok = int.TryParse(Console.ReadLine(), out vibor);
  168.                                 if (ok == false)
  169.                                     Console.WriteLine("Ошибка при вводе числа");
  170.                             } while (!ok);
  171.  
  172.                             switch (vibor)
  173.                             {
  174.                                 case 1:
  175.                                     {
  176.                                             for (i = 0; i < K; i++) //копирую все от 0 до К в новый массив
  177.                                             {
  178.                                                 mas1[i] = mas[i];
  179.                                             }
  180.  
  181.                                             for (i = K; i < n; i++)//копирую все с K до n из старого массива в новый с i+N (смещаю на колво новых)
  182.                                             {
  183.                                                 mas1[i + N] = mas[i];
  184.                                             }
  185.  
  186.                                             for (i = K; i < N; i++)
  187.                                             {
  188.                                                 {
  189.                                                     Console.WriteLine("Введите значение элемента");
  190.                                                     string buf = Console.ReadLine();
  191.                                                     ok = int.TryParse(buf, out r);
  192.                                                     if (!ok) Console.WriteLine("Ошибка!");
  193.                                                 } while (!ok);
  194.                                                 mas1[i] = r;
  195.                                             }
  196.                                     }
  197.                                     break;
  198.  
  199.                                 case 2:
  200.                                     {
  201.                                         do
  202.                                         {
  203.                                             for (i = n - 1; i >= K; i -= 1)
  204.                                             {
  205.                                                 mas1[i + 1] = mas1[i];
  206.                                             }
  207.  
  208.                                             mas1[K] = rnd.Next(10);
  209.                                             n = n + 1;
  210.                                             u += 1;
  211.                                             K = K + 1;
  212.                                         } while (u < N);
  213.                                         break;
  214.                                     }
  215.  
  216.                                 default:
  217.                                     Console.WriteLine("Пункта с данным номером не существует в меню");
  218.                                     break;
  219.  
  220.  
  221.  
  222.                             }
  223.                             //for (i = 0; i < size; i++) А ЗАЧЕМ ТУТ СТАРЫЙ ВЫВОДИТЬ?
  224.                             //    Console.Write(mas[i] + " ");
  225.                             //Console.WriteLine();
  226.                             for (i = 0; i < n + N; i++)
  227.                             {
  228.                                 Console.Write($"{mas1[i]}, ");
  229.                             }
  230.  
  231.                             break;
  232.                         }
  233.  
  234.                     case 5:
  235.                         {
  236.                             //сдвинуть циклически на M элементов вправо
  237.                             int M, t;
  238.  
  239.                             do
  240.                             {
  241.                                 Console.WriteLine("Введтие значение, на сколько элементов необходимо сдвинуть массив: ");
  242.                                 string buf = Console.ReadLine();
  243.                                 ok = int.TryParse(buf, out M);
  244.                                 if (!ok)
  245.                                     Console.WriteLine("Введено неверное значение!");
  246.                             } while (!ok);
  247.  
  248.                             for (int l = 0; l < M; l++)
  249.                             {
  250.                                 t = mas[size - 1];
  251.                                 for (int i = size - 1; i > 0; i--)
  252.                                 {
  253.                                     mas[i] = mas[i - 1];
  254.                                 }
  255.                                 mas[0] = t;
  256.                             }
  257.  
  258.                             Console.WriteLine("Массив сдвинут");
  259.  
  260.                             for (int i = 0; i < size; i++)
  261.                                 Console.Write(mas[i] + " ");
  262.                             Console.WriteLine();
  263.                             break;
  264.                         }
  265.  
  266.                     case 6:
  267.                         {
  268.                             //поиск элемента с заданным ключом (значением)
  269.  
  270.                             int nom = -1, x;
  271.  
  272.                             do
  273.                             {
  274.                                 Console.WriteLine("Введтие значение элемента: ");
  275.                                 string buf = Console.ReadLine();
  276.                                 ok = int.TryParse(buf, out x);
  277.                                 if (!ok)
  278.                                     Console.WriteLine("Введено неверное значение!");
  279.                             } while (!ok);
  280.  
  281.                             for (int i = 0; i < size; i++)
  282.                                 if (mas[i] == x)
  283.                                 {
  284.                                     nom = i + 1;
  285.                                     break;
  286.                                 }
  287.                             if (nom >= 0)
  288.                                 Console.WriteLine("Номер = {0}", nom++);
  289.                             else
  290.                                 Console.WriteLine("Элемент не найден");
  291.                             break;
  292.                         }
  293.  
  294.                     case 7:
  295.                         {
  296.                             //простой выбор
  297.                             int min, n_min, j;
  298.                             for (int i = 0; i < (size - 1); i++)
  299.                             {
  300.                                 min = mas[i];
  301.                                 n_min = i;
  302.                                 for (j = i + 1; j < size; j++)
  303.                                     if (mas[j] < min)
  304.                                     {
  305.                                         min = mas[j];
  306.                                         n_min = j;
  307.                                     }
  308.                                 mas[n_min] = mas[i];
  309.                                 mas[i] = min;
  310.                             }
  311.                             Console.WriteLine("Массив отсортирован простым выбором");
  312.  
  313.                             for (int i = 0; i < size; i++)
  314.                                 Console.Write(mas[i] + " ");
  315.                             Console.WriteLine();
  316.                             break;
  317.                         }
  318.  
  319.                     case 8:
  320.                         {
  321.                             //поиск в отсортированном массиве
  322.                             break;
  323.                         }
  324.                 }//конец switch 1
  325.             } while (answer1 < 9);
  326.         }
  327.     }
  328. }
Advertisement
Add Comment
Please, Sign In to add comment