Advertisement
Guest User

full program

a guest
Dec 6th, 2018
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 54.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace LAB_5_CH
  8. {
  9.     class Text_Dialog
  10.     {
  11.         //---Все менюшки----------------------------------------------
  12.         public static void PrintMainMenu()
  13.         {
  14.             Console.WriteLine("\n-----------------------------------------");
  15.             Console.WriteLine("| Выберите следующее действие:          |");
  16.             Console.WriteLine("| 1) Построить одномерный массив        |");
  17.             Console.WriteLine("| 2) Построить двумерный массив         |");
  18.             Console.WriteLine("| 3) Построить рваный массив            |");
  19.             Console.WriteLine("| 0) Выход                              |");
  20.             Console.WriteLine("-----------------------------------------");
  21.             Console.Write("Действие: ");
  22.         }
  23.         public static void PrintMenuONEmer()
  24.         {
  25.             Console.WriteLine("\n----------------------------------------------");
  26.             Console.WriteLine("| Выберите следующее действие:               |");
  27.             Console.WriteLine("| 1) Удалить элементы с чётными индексами    |");
  28.             Console.WriteLine("| 2) Построить новый одномерный массив       |");
  29.             Console.WriteLine("| 9) Вернуться в начало                      |");
  30.             Console.WriteLine("| 0) Выход                                   |");
  31.             Console.WriteLine("----------------------------------------------");
  32.             Console.Write("Действие: ");
  33.         }
  34.         public static void PrintMenuTWOmer()
  35.         {
  36.             Console.WriteLine("\n----------------------------------------------------------------");
  37.             Console.WriteLine("| Выберите следующее действие:                                 |");
  38.             Console.WriteLine("| 1) Добавить K столбцов начиная со столбца под номером N      |");
  39.             Console.WriteLine("| 2) Построить новый двумерный массив                          |");
  40.             Console.WriteLine("| 9) Вернуться в начало                                        |");
  41.             Console.WriteLine("| 0) Выход                                                     |");
  42.             Console.WriteLine("----------------------------------------------------------------");
  43.             Console.Write("Действие: ");
  44.         }
  45.         public static void PrintPodMenuTWOmer()
  46.         {
  47.             Console.WriteLine("\n------------------------------");
  48.             Console.WriteLine("| Как вы хотите добавлять?   |");
  49.             Console.WriteLine("| 1) Рандомно                |");
  50.             Console.WriteLine("| 2) Вручную                 |");
  51.             Console.WriteLine("| 9) Вернуться в начало      |");
  52.             Console.WriteLine("| 0) Выход из консоли        |");
  53.             Console.WriteLine("------------------------------");
  54.             Console.Write("Действие: ");
  55.         }
  56.         public static void PrintMenuRvanM()
  57.         {
  58.             Console.WriteLine("\n----------------------------------------------");
  59.             Console.WriteLine("| Выберите следующее действие:               |");
  60.             Console.WriteLine("| 1) Добавить строку с заданным номером      |");
  61.             Console.WriteLine("| 2) Построить новый рваный массив           |");
  62.             Console.WriteLine("| 9) Вернуться в начало                      |");
  63.             Console.WriteLine("| 0) Выход                                   |");
  64.             Console.WriteLine("----------------------------------------------");
  65.             Console.Write("Действие: ");
  66.         }
  67.         public static void PrintPodMenuRvanM()
  68.         {
  69.             Console.WriteLine("\n------------------------------");
  70.             Console.WriteLine("| Как вы хотите добавлять?   |");
  71.             Console.WriteLine("| 1) Рандомно                |");
  72.             Console.WriteLine("| 2) Вручную                 |");
  73.             Console.WriteLine("| 9) Вернуться в начало      |");
  74.             Console.WriteLine("| 0) Выход из консоли        |");
  75.             Console.WriteLine("------------------------------");
  76.             Console.Write("Действие: ");
  77.         }
  78.         public static void PrintErrorMenu()
  79.         {
  80.             Console.ForegroundColor = ConsoleColor.Red;
  81.             Console.WriteLine("Нужно выбрать из списка!");
  82.             Console.ResetColor();
  83.         }
  84.         //------------------------------------------------------------
  85.     }
  86.     class Search_for_Bugs
  87.     {
  88.         //---Проверка ввода-------------------------------------------
  89.         public static int ProverkaMassiva(string title, int ArrayMin, int right)  //Проверка на ввод массива и его элементов
  90.                                                                            //Тут больше и нечего добавлять
  91.                                                                            //Просто небольшая функция на проверку
  92.         {
  93.             bool ok = false;
  94.             int number = ArrayMin;
  95.             do
  96.             {
  97.                 Console.WriteLine(title);
  98.                 try
  99.                 {
  100.                     int buf = int.Parse(Console.ReadLine());
  101.                     number = Convert.ToInt32(buf);
  102.                     if (number >= ArrayMin && number < right) ok = true;
  103.                     else
  104.                     {
  105.                         Console.WriteLine("Неверный ввод\nПопробуйте снова");
  106.                         ok = false;
  107.                     }
  108.                 }
  109.                 catch (FormatException)
  110.                 {
  111.                     Console.WriteLine("Неверный ввод\nПопробуйте снова");
  112.                     ok = false;
  113.                 }
  114.                 catch (OverflowException)
  115.                 {
  116.                     Console.WriteLine("Неверный ввод\nПопробуйте снова");
  117.                     ok = false;
  118.                 }
  119.             } while (!ok);
  120.             return number;
  121.         }
  122.         public static int ProverkaVvoda() //Проверка ввода в массив
  123.                                    //Тут больше и нечего добавлять
  124.                                    //Просто небольшая функция на проверку
  125.         {
  126.             int number;
  127.             bool res;
  128.             do
  129.             {
  130.                 res = int.TryParse(Console.ReadLine(), out number);
  131.  
  132.                 if (res == false)
  133.                 {
  134.                     Console.WriteLine("Некорректный ввод");
  135.                 }
  136.             } while (!res);
  137.             return number;
  138.         }
  139.         public static int InputNumber(string Text, int minSize, int maxSize)
  140.         {
  141.             int number = 0;
  142.             bool ok = false;
  143.             do
  144.             {
  145.                 try
  146.                 {
  147.                     Console.WriteLine(Text);
  148.                     number = Convert.ToInt32(Console.ReadLine());
  149.                     if (number >= minSize && number < maxSize) ok = true;
  150.                     else ok = false;
  151.                 }
  152.                 catch (FormatException)
  153.                 {
  154.                     Console.WriteLine("Ошибка при вводе числа");
  155.                     ok = false;
  156.                 }
  157.                 catch (OverflowException)
  158.                 {
  159.                     Console.WriteLine("Ошибка при вводе числа");
  160.                     ok = false;
  161.                 }
  162.  
  163.             } while (!ok);
  164.             return number;
  165.  
  166.         }
  167.         //------------------------------------------------------------
  168.     }
  169.     class Program
  170.     {
  171.         const int MinSize = 1;
  172.         const int MaxSize = 100;
  173.         const int MinNumber = -100;
  174.         const int MaxNumber = 100;
  175.         static void RestartMenu(string[] args)
  176.         {
  177.             Console.Clear();
  178.             Console.WriteLine("\n---!!!!!------Массив пуст-----!!!!!!-----");
  179.             Console.WriteLine("\n------------------------------");
  180.             Console.WriteLine("| Выберите действие:         |");
  181.             Console.WriteLine("| 9) Вернуться в начало      |");
  182.             Console.WriteLine("| 0) Выход из консоли        |");
  183.             Console.WriteLine("------------------------------");
  184.             Console.Write("Действие: ");
  185.             int check = Search_for_Bugs.ProverkaVvoda();
  186.             switch (check)
  187.             {
  188.                 case 9:
  189.                     Main(args);
  190.                     break;
  191.                 case 0:
  192.                     Environment.Exit(0);  //Выход из консоли
  193.                     break;
  194.                 default:
  195.                     Text_Dialog.PrintErrorMenu();
  196.                     break;
  197.             }
  198.         }
  199.         //---ОДНОМЕРНЫЙ МАССИВ----------------------------------------------------------------------------------------------------
  200.         static int[] Massiv(ref int elementi, ref int ArrayMin, ref int ArrayMax, ref string[] args) //Меню с массивами
  201.         {
  202.             Console.Clear();
  203.             int[] massiv = null;
  204.             Console.WriteLine("\n------------------------------");
  205.             Console.WriteLine("| Выберите вид массива:      |");
  206.             Console.WriteLine("| 1) Рандомный массив        |");
  207.             Console.WriteLine("| 2) Массив с вводом         |");
  208.             Console.WriteLine("| 9) Вернуться в начало      |");
  209.             Console.WriteLine("| 0) Выход из консоли        |");
  210.             Console.WriteLine("------------------------------");
  211.             Console.Write("Действие: ");
  212.             int check = Search_for_Bugs.ProverkaVvoda();
  213.             switch (check)
  214.             {
  215.                 case 1:
  216.                     Console.WriteLine("----------Формирование массива----------------");
  217.                     Console.Write("Введите нижнюю границу массива:");
  218.                     ArrayMin = Search_for_Bugs.ProverkaVvoda();
  219.                     do
  220.                     {
  221.                         Console.Write("Введите верхнюю границу массива:");
  222.                         ArrayMax = Search_for_Bugs.ProverkaVvoda();
  223.                         if (ArrayMax < ArrayMin)
  224.                         {
  225.                             Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
  226.                         }
  227.                     } while (ArrayMax < ArrayMin);
  228.                     Console.Write("Введите количество элементов в массиве:");
  229.                     elementi = Search_for_Bugs.ProverkaMassiva("", MinSize, MaxSize);
  230.                     massiv = MassivRandom(elementi, ref ArrayMin, ref ArrayMax);
  231.                     if (elementi > 0)
  232.                     {
  233.                         Console.Clear();
  234.                         Console.WriteLine("------------------Массив-----------------\n");
  235.                         foreach (var i in massiv) //Построение нового массива
  236.                         {
  237.                             Console.Write(" " + i);
  238.                         }
  239.                         Console.WriteLine("\n-----------------------------------------");
  240.                         do
  241.                         {
  242.                             Text_Dialog.PrintMenuONEmer();
  243.                             int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  244.                             switch (ElementPodmenu) //Выбор действия из меню
  245.                             {
  246.                                 case 1:
  247.                                     Udalenie(ref massiv, ref elementi, ref ArrayMin, ref ArrayMax, ref args);                                    
  248.                                     break;
  249.                                 case 2:
  250.                                     Massiv(ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  251.                                     break;                                
  252.                                 case 9:
  253.                                     Main(args);
  254.                                     break;
  255.                                 case 0:
  256.                                     Environment.Exit(0);  //Выход из консоли
  257.                                     break;
  258.                                 default:
  259.                                     Text_Dialog.PrintErrorMenu();
  260.                                     continue;
  261.                             }
  262.                         } while (true);
  263.                     }
  264.                     else
  265.                     {
  266.                         RestartMenu(args);
  267.                     }
  268.                     break;
  269.                 case 2:
  270.                     Console.WriteLine("----------Формирование массива----------------");
  271.                     Console.Write("Введите количество элементов в массиве:");
  272.                     elementi = Search_for_Bugs.ProverkaMassiva("", MinSize, MaxSize);
  273.                     if (elementi > 0)
  274.                     {
  275.                         massiv = MassivVvod(elementi);
  276.                         Console.Clear();
  277.                         Console.WriteLine("------------------Массив-----------------\n");
  278.                         foreach (var i in massiv) //Построение нового массива
  279.                         {
  280.                             Console.Write(" " + i);
  281.                         }
  282.                         Console.WriteLine("\n-----------------------------------------");
  283.                         do
  284.                         {
  285.                             Text_Dialog.PrintMenuONEmer();
  286.                             int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  287.  
  288.                             switch (ElementPodmenu) //Выбор действия из меню
  289.                             {
  290.                                 case 1:
  291.                                     Udalenie(ref massiv, ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  292.                                     break;
  293.                                 case 2:
  294.                                     Massiv(ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  295.                                     break;
  296.                                 case 9:
  297.                                     Main(args);
  298.                                     break;
  299.                                 case 0:
  300.                                     Environment.Exit(0);  //Выход из консоли
  301.                                     break;
  302.                                 default:
  303.                                     Text_Dialog.PrintErrorMenu();
  304.                                     break;
  305.                             }
  306.                         } while (true);
  307.                     }
  308.                     else
  309.                     {
  310.                         RestartMenu(args);
  311.                     }
  312.                     break;
  313.                 case 9:
  314.                     Massiv(ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  315.                     break;
  316.                 case 0:
  317.                     Environment.Exit(0);  //Выход из консоли
  318.                     break;
  319.                 default:
  320.                     Text_Dialog.PrintErrorMenu();
  321.                     break;
  322.             }
  323.             return massiv;
  324.         }
  325.         static int[] MassivRandom(int elementi, ref int ArrayMin, ref int ArrayMax)
  326.         {
  327.             Random rnd = new Random();
  328.             int[] massiv = new int[elementi];
  329.             for (int i = 0; i < elementi; i++)
  330.             {
  331.                 massiv[i] = rnd.Next(ArrayMin, ArrayMax);
  332.             }
  333.             return massiv;
  334.         }
  335.         static int[] MassivVvod(int elementi)
  336.         {
  337.             int[] massiv = new int[elementi];
  338.             for (int i = 0; i < elementi; i++)
  339.             {
  340.                 massiv[i] = Search_for_Bugs.ProverkaMassiva("Введите элемент массива из диапазона от -100 до 100", MinNumber, MaxNumber);
  341.             }
  342.             return massiv;
  343.         }
  344.         static void Udalenie(ref int[] massiv, ref int elementi, ref int ArrayMin, ref int ArrayMax, ref string[] args)
  345.         {
  346.             Console.Clear();
  347.             Console.WriteLine("------------------Массив-----------------\n");
  348.             foreach (var i in massiv) //Построение нового массива
  349.             {
  350.                 Console.Write(" " + i);
  351.             }
  352.             Console.WriteLine("\n-------------Новый массив----------------");
  353.             int[] NewMassiv = new int[massiv.Length / 2];
  354.             int v = 0;
  355.             if (elementi > 1)
  356.             {
  357.                 for (int i = 0; i < massiv.Length; i++)
  358.                     if (i % 2 == 0)
  359.                     {
  360.                         NewMassiv[v] = massiv[i]; v++;
  361.                     }
  362.             }
  363.             else
  364.             {
  365.                 Console.WriteLine("\n---!!!!!------Массив пуст-----!!!!!!-----");
  366.             }
  367.             foreach (var i in NewMassiv) //Построение нового массива
  368.             {
  369.                 Console.Write(" " + i);
  370.             }
  371.             Console.WriteLine("\n-----------------------------------------");
  372.             do
  373.             {
  374.                 Console.WriteLine("\n----------------------------------------------");
  375.                 Console.WriteLine("| Выберите следующее действие:               |");
  376.                 Console.WriteLine("| 1) Построить новый одномерный массив       |");
  377.                 Console.WriteLine("| 9) Вернуться в начало                      |");
  378.                 Console.WriteLine("| 0) Выход                                   |");
  379.                 Console.WriteLine("----------------------------------------------");
  380.                 Console.Write("Действие: ");
  381.                 int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  382.  
  383.                 switch (ElementPodmenu) //Выбор действия из меню
  384.                 {
  385.                     case 1:
  386.                         Massiv(ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  387.                         break;
  388.                     case 9:
  389.                         Main(args);
  390.                         break;
  391.                     case 0:
  392.                         Environment.Exit(0);  //Выход из консоли
  393.                         break;
  394.                     default:
  395.                         Text_Dialog.PrintErrorMenu();
  396.                         continue;
  397.                 }
  398.             } while (true);
  399.         }
  400.         //------------------------------------------------------------------------------------------------------------------------
  401.         //---ДВУМЕРНЫЙ МАССИВ-----------------------------------------------------------------------------------------------------
  402.         static int[,] DvumerniiArray(string[] args, int ArrayMin, int ArrayMax, ref int stringSize, ref int columnSize, ref int[,] dvumernii_array)
  403.         {
  404.             do
  405.             {
  406.                 Console.Clear();
  407.                 dvumernii_array = null;
  408.                 Console.WriteLine("\n------------------------------");
  409.                 Console.WriteLine("| Выберите вид массива:      |");
  410.                 Console.WriteLine("| 1) Рандомный массив        |");
  411.                 Console.WriteLine("| 2) Массив с вводом         |");
  412.                 Console.WriteLine("| 9) Вернуться в начало      |");
  413.                 Console.WriteLine("| 0) Выход из консоли        |");
  414.                 Console.WriteLine("------------------------------");
  415.                 Console.Write("Действие: ");
  416.                 int check = Search_for_Bugs.ProverkaVvoda();
  417.                 switch (check)
  418.                 {
  419.                     case 1:
  420.                         Console.Clear();
  421.                         RanomDvumerniiArray(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  422.                         if (stringSize > 0)
  423.                         {                            
  424.                             do
  425.                             {
  426.                                 Text_Dialog.PrintMenuTWOmer();
  427.                                 int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  428.                                 switch (ElementPodmenu) //Выбор действия из меню
  429.                                 {
  430.                                     case 1:
  431.                                         Text_Dialog.PrintPodMenuTWOmer();
  432.                                         int ElementPodPodmenu = Search_for_Bugs.ProverkaVvoda();
  433.                                         switch(ElementPodPodmenu)
  434.                                         {
  435.                                             case 1:
  436.                                                 Console.Clear();
  437.                                                 RandomVvod(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  438.                                                 break;
  439.                                             case 2:
  440.                                                 Console.Clear();
  441.                                                 RuchnoiVvod(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  442.                                                 break;
  443.                                             case 9:
  444.                                                 Main(args);
  445.                                                 break;
  446.                                             case 0:
  447.                                                 Environment.Exit(0);  //Выход из консоли
  448.                                                 break;
  449.                                             default:
  450.                                                 Text_Dialog.PrintErrorMenu();
  451.                                                 break;
  452.                                         }
  453.                                         break;
  454.                                     case 2:
  455.                                         DvumerniiArray(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  456.                                         break;
  457.                                     case 9:
  458.                                         Main(args);
  459.                                         Console.Clear();
  460.                                         break;
  461.                                     case 0:
  462.                                         Environment.Exit(0);  //Выход из консоли
  463.                                         break;
  464.                                     default:
  465.                                         Text_Dialog.PrintErrorMenu();
  466.                                         break;
  467.                                 }
  468.                             } while (true);
  469.                         }
  470.                         else
  471.                         {
  472.                             RestartMenu(args);
  473.                         }
  474.                         break;
  475.                     case 2:
  476.                         Console.Clear();
  477.                         VvodDvumerniiArray(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  478.                         if (stringSize > 0)
  479.                         {
  480.                             do
  481.                             {
  482.                                 Text_Dialog.PrintMenuTWOmer();
  483.                                 int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  484.                                 switch (ElementPodmenu) //Выбор действия из меню
  485.                                 {
  486.                                     case 1:
  487.                                         Text_Dialog.PrintPodMenuTWOmer();
  488.                                         int ElementPodPodmenu = Search_for_Bugs.ProverkaVvoda();
  489.                                         switch (ElementPodPodmenu)
  490.                                         {
  491.                                             case 1:
  492.                                                 Console.Clear();
  493.                                                 RandomVvod(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  494.                                                 break;
  495.                                             case 2:
  496.                                                 Console.Clear();
  497.                                                 RuchnoiVvod(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  498.                                                 break;
  499.                                             case 9:
  500.                                                 Main(args);
  501.                                                 break;
  502.                                             case 0:
  503.                                                 Environment.Exit(0);  //Выход из консоли
  504.                                                 break;
  505.                                             default:
  506.                                                 Text_Dialog.PrintErrorMenu();
  507.                                                 break;
  508.                                         }
  509.                                         break;
  510.                                     case 2:
  511.                                         DvumerniiArray(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  512.                                         break;
  513.                                     case 9:
  514.                                         Main(args);
  515.                                         break;
  516.                                     case 0:
  517.                                         Environment.Exit(0);  //Выход из консоли
  518.                                         break;
  519.                                     default:
  520.                                         Text_Dialog.PrintErrorMenu();
  521.                                         break;
  522.                                 }
  523.                             } while (true);
  524.                         }
  525.                         else
  526.                         {
  527.                             RestartMenu(args);
  528.                         }
  529.                         break;
  530.                     case 9:
  531.                         Main(args);
  532.                         break;
  533.                     case 0:
  534.                         Environment.Exit(0);  //Выход из консоли
  535.                         break;
  536.                     default:
  537.                         Text_Dialog.PrintErrorMenu();
  538.                         break;
  539.                 }
  540.                 return dvumernii_array;
  541.             } while (true);
  542.         }
  543.         static int[,] RanomDvumerniiArray(string[] args, int ArrayMin, int ArrayMax, ref int stringSize, ref int columnSize, ref int[,] dvumernii_array)
  544.         {
  545.             Console.WriteLine("----------Формирование массива----------------");
  546.             Console.Write("Ввдеите количество строк: ");
  547.             stringSize = Search_for_Bugs.ProverkaVvoda();
  548.             Console.Write("\nВведите количество столбцов: ");
  549.             columnSize = Search_for_Bugs.ProverkaVvoda();
  550.             Console.Write("\nВведите нижнюю границу массива:");
  551.             ArrayMin = Search_for_Bugs.ProverkaVvoda();
  552.             do
  553.             {
  554.                 Console.Write("Введите верхнюю границу массива:");
  555.                 ArrayMax = Search_for_Bugs.ProverkaVvoda();
  556.                 if (ArrayMax < ArrayMin)
  557.                 {
  558.                     Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
  559.                 }
  560.             } while (ArrayMax < ArrayMin);
  561.             dvumernii_array = new int[stringSize, columnSize];
  562.             Random rand = new Random();
  563.             for (int i = 0; i < stringSize; i++)
  564.             {
  565.                 for (int j = 0; j < columnSize; j++)
  566.                 {
  567.                     dvumernii_array[i, j] = rand.Next(ArrayMin, ArrayMax);
  568.                 }
  569.             }
  570.             Console.WriteLine("------------------Массив-----------------\n");
  571.             for (int i = 0; i < dvumernii_array.GetLength(0); i++)
  572.             {
  573.                 for (int j = 0; j < dvumernii_array.GetLength(1); j++)
  574.                 {
  575.                     Console.Write(dvumernii_array[i, j] + "\t ");
  576.                 }
  577.                 Console.WriteLine();
  578.             }
  579.             Console.WriteLine("\n-----------------------------------------");
  580.             return dvumernii_array;            
  581.         }
  582.         static int[,] VvodDvumerniiArray(string[] args, int ArrayMin, int ArrayMax, ref int stringSize, ref int columnSize, ref int[,] dvumernii_array)
  583.         {
  584.             Console.WriteLine("----------Формирование массива----------------");
  585.             Console.Write("Ввдеите количество строк: ");
  586.             stringSize = Search_for_Bugs.ProverkaVvoda();
  587.             Console.Write("\nВведите количество столбцов: ");
  588.             columnSize = Search_for_Bugs.ProverkaVvoda();
  589.             Console.Write("\nВведите нижнюю границу массива:");
  590.             ArrayMin = Search_for_Bugs.ProverkaVvoda();
  591.             do
  592.             {
  593.                 Console.Write("Введите верхнюю границу массива:");
  594.                 ArrayMax = Search_for_Bugs.ProverkaVvoda();
  595.                 if (ArrayMax < ArrayMin)
  596.                 {
  597.                     Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
  598.                 }
  599.             } while (ArrayMax < ArrayMin);
  600.             dvumernii_array = new int[stringSize, columnSize];
  601.             Random rand = new Random();
  602.             for (int i = 0; i < stringSize; i++)
  603.             {
  604.                 for (int j = 0; j < columnSize; j++)
  605.                 {
  606.                     Search_for_Bugs.InputNumber("Введите элемент матрицы", MinNumber, MaxNumber);
  607.                 }
  608.             }
  609.             Console.WriteLine("------------------Массив-----------------\n");
  610.             for (int i = 0; i < dvumernii_array.GetLength(0); i++)
  611.             {
  612.                 for (int j = 0; j < dvumernii_array.GetLength(1); j++)
  613.                 {
  614.                     Console.Write(dvumernii_array[i, j] + "\t ");
  615.                 }
  616.                 Console.WriteLine();
  617.             }
  618.             Console.WriteLine("\n-----------------------------------------");
  619.             return dvumernii_array;
  620.         }
  621.         static int[,] RandomVvod(string[] args, int ArrayMin, int ArrayMax, ref int stringSize, ref int columnSize, ref int[,] dvumernii_array)
  622.         {
  623.            
  624.             return dvumernii_array;
  625.         }
  626.         static int[,] RuchnoiVvod(string[] args, int ArrayMin, int ArrayMax, ref int stringSize, ref int columnSize, ref int[,] dvumernii_array)
  627.         {
  628.             return dvumernii_array;
  629.         }
  630.         static void AddRow(ref int[,] dvumernii_array, int k)
  631.         {
  632.             int[,] NewDvumerniiArray = new int[dvumernii_array.GetLength(0) + 1, dvumernii_array.GetLength(1)];
  633.             for (int i = 0; i < dvumernii_array.GetLength(0); i++)
  634.             {
  635.                 for (int j = 0; j < dvumernii_array.GetLength(1); j++)
  636.                 {
  637.                     NewDvumerniiArray[i, j] = dvumernii_array[i, j];
  638.                 }
  639.             }
  640.             for (int i = NewDvumerniiArray.GetLength(0) - 1; i > 1; i--)
  641.             {
  642.                 for (int j = 0; j < NewDvumerniiArray.GetLength(1); j++)
  643.                 {
  644.                     NewDvumerniiArray[i, j] = NewDvumerniiArray[i - 1, j];
  645.                 }
  646.             }
  647.             Random rand = new Random();
  648.             for (int j = 0; j < NewDvumerniiArray.GetLength(1); j++)
  649.             {
  650.                 NewDvumerniiArray[1, j] = rand.Next(100);
  651.             }
  652.             dvumernii_array = NewDvumerniiArray;
  653.         }
  654.         //------------------------------------------------------------------------------------------------------------------------
  655.         //---РВАНЫЙ МАССИВ--------------------------------------------------------------------------------------------------------
  656.         static int[][] RvaniiArray(string[] args, int ArrayMin, int ArrayMax, ref int NumberOfStrings)
  657.         {            
  658.             do
  659.             {
  660.                 Console.Clear();
  661.                 int[][] rvanii_array = null;
  662.                 Console.WriteLine("\n------------------------------");
  663.                 Console.WriteLine("| Выберите вид массива:      |");
  664.                 Console.WriteLine("| 1) Рандомный массив        |");
  665.                 Console.WriteLine("| 2) Массив с вводом         |");
  666.                 Console.WriteLine("| 9) Вернуться в начало      |");
  667.                 Console.WriteLine("| 0) Выход из консоли        |");
  668.                 Console.WriteLine("------------------------------");
  669.                 Console.Write("Действие: ");
  670.                 int check = Search_for_Bugs.ProverkaVvoda();
  671.                 switch (check)
  672.                 {
  673.                     case 1:
  674.                         Console.Clear();
  675.                         RvaniiArrayRandom(ArrayMin, ArrayMax, ref rvanii_array, ref NumberOfStrings);
  676.                         if (NumberOfStrings > 0)
  677.                         {                            
  678.                             do
  679.                             {
  680.                                 Text_Dialog.PrintMenuRvanM();
  681.                                 int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  682.                                 switch (ElementPodmenu) //Выбор действия из меню
  683.                                 {
  684.                                     case 1:
  685.                                         Text_Dialog.PrintPodMenuRvanM();
  686.                                         int ElementPodPodmenu = Search_for_Bugs.ProverkaVvoda();
  687.                                         switch(ElementPodPodmenu)
  688.                                         {
  689.                                             case 1:
  690.                                                 Console.Clear();
  691.                                                 RandomDobavlenie(ref rvanii_array, ref NumberOfStrings, ArrayMin, ArrayMax);
  692.                                                 break;
  693.                                             case 2:
  694.                                                 Console.Clear();
  695.                                                 VvodDobavlenie(ref rvanii_array, ref NumberOfStrings, ArrayMin, ArrayMax);
  696.                                                 break;
  697.                                             case 9:
  698.                                                 Main(args);
  699.                                                 break;
  700.                                             case 0:
  701.                                                 Environment.Exit(0);  //Выход из консоли
  702.                                                 break;
  703.                                             default:
  704.                                                 Text_Dialog.PrintErrorMenu();
  705.                                                 break;
  706.                                         }
  707.                                         break;
  708.                                     case 2:
  709.                                         RvaniiArray(args, ArrayMin, ArrayMax, ref NumberOfStrings);
  710.                                         break;
  711.                                     case 9:
  712.                                         Main(args);
  713.                                         Console.Clear();
  714.                                         break;
  715.                                     case 0:
  716.                                         Environment.Exit(0);  //Выход из консоли
  717.                                         break;
  718.                                     default:
  719.                                         Text_Dialog.PrintErrorMenu();
  720.                                         break;
  721.                                 }
  722.                             } while (true);
  723.                         }
  724.                         else
  725.                         {
  726.                             RestartMenu(args);
  727.                         }
  728.                         break;
  729.                     case 2:
  730.                         Console.Clear();
  731.                         RvaniiArrayVvod(ArrayMin, ArrayMax, ref rvanii_array, ref NumberOfStrings);
  732.                         if (NumberOfStrings > 0)
  733.                         {
  734.                             do
  735.                             {
  736.                                 Text_Dialog.PrintMenuRvanM();
  737.                                 int ElementPodmenu = Search_for_Bugs.ProverkaVvoda();
  738.                                 switch (ElementPodmenu) //Выбор действия из меню
  739.                                 {
  740.                                     case 1:
  741.                                         Text_Dialog.PrintPodMenuRvanM();
  742.                                         int ElementPodPodmenu = Search_for_Bugs.ProverkaVvoda();
  743.                                         switch (ElementPodPodmenu)
  744.                                         {
  745.                                             case 1:
  746.                                                 Console.Clear();
  747.                                                 RandomDobavlenie(ref rvanii_array, ref NumberOfStrings, ArrayMin, ArrayMax);
  748.                                                 break;
  749.                                             case 2:
  750.                                                 Console.Clear();
  751.                                                 VvodDobavlenie(ref rvanii_array, ref NumberOfStrings, ArrayMin, ArrayMax);
  752.                                                 break;
  753.                                             case 9:
  754.                                                 Main(args);
  755.                                                 break;
  756.                                             case 0:
  757.                                                 Environment.Exit(0);  //Выход из консоли
  758.                                                 break;
  759.                                             default:
  760.                                                 Text_Dialog.PrintErrorMenu();
  761.                                                 break;
  762.                                         }
  763.                                         break;
  764.                                     case 2:
  765.                                         RvaniiArray(args, ArrayMin, ArrayMax, ref NumberOfStrings);
  766.                                         break;
  767.                                     case 9:
  768.                                         Main(args);
  769.                                         break;
  770.                                     case 0:
  771.                                         Environment.Exit(0);  //Выход из консоли
  772.                                         break;
  773.                                     default:
  774.                                         Text_Dialog.PrintErrorMenu();
  775.                                         break;
  776.                                 }
  777.                             } while (true);
  778.                         }
  779.                         else
  780.                         {
  781.                             RestartMenu(args);
  782.                         }
  783.                         break;
  784.                     case 9:
  785.                         Main(args);
  786.                         break;
  787.                     default:
  788.                         Text_Dialog.PrintErrorMenu();
  789.                         break;
  790.                 }
  791.                 return rvanii_array;
  792.             } while (true);
  793.         }
  794.         static int[][] RvaniiArrayRandom(int ArrayMin, int ArrayMax, ref int[][] rvanii_array, ref int NumberOfStrings)
  795.         {
  796.             int ColumnSize,
  797.                 Roll = 1;
  798.             NumberOfStrings = 1;
  799.             Random rnd = new Random();
  800.             Console.WriteLine("----------Формирование массива----------------\n");
  801.             do
  802.             {
  803.                 Console.Write("Введите количество строк: ");
  804.                 NumberOfStrings = Search_for_Bugs.ProverkaVvoda();
  805.                 if (NumberOfStrings <= 0)
  806.                 {
  807.                     Console.WriteLine("Количество строк не может быть меньше или равно 0\n");
  808.                 }
  809.             }
  810.             while (NumberOfStrings <= 0);
  811.             Console.Write("Введите нижнюю границу массива:");
  812.             ArrayMin = Search_for_Bugs.ProverkaVvoda();
  813.             do
  814.             {
  815.                 Console.Write("Введите верхнюю границу массива:");
  816.                 ArrayMax = Search_for_Bugs.ProverkaVvoda();
  817.                 if (ArrayMax < ArrayMin)
  818.                 {
  819.                     Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
  820.                 }
  821.             } while (ArrayMax < ArrayMin);
  822.             rvanii_array = new int[NumberOfStrings][];
  823.             for (int i = 0; i < NumberOfStrings; i++)
  824.             {
  825.                 Console.Write("Введите количество Элементов в " + Roll + " строке: ");
  826.                 do
  827.                 {
  828.                     ColumnSize = Search_for_Bugs.ProverkaVvoda();
  829.                     if(ColumnSize <= 0)
  830.                     {
  831.                         Console.WriteLine("Я не хочу чтобы Массив пустовал!!!");
  832.                     }
  833.                 } while (ColumnSize <= 0);
  834.                 rvanii_array[i] = new int[ColumnSize];
  835.                 for (int j = 0; j < ColumnSize; j++)
  836.                 {
  837.                     rvanii_array[i][j] = rnd.Next(ArrayMin, ArrayMax);
  838.                 }                
  839.                 Roll++;
  840.             }
  841.             Console.Clear();
  842.             Console.WriteLine("------------------Массив-----------------\n");
  843.             for (int i = 0; i < NumberOfStrings; i++)
  844.             {
  845.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  846.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  847.                 Console.WriteLine();
  848.             }
  849.             Console.WriteLine("\n-----------------------------------------");
  850.             return rvanii_array;
  851.         }
  852.         static int[][] RvaniiArrayVvod(int ArrayMin, int ArrayMax, ref int[][] rvanii_array, ref int NumberOfStrings)
  853.         {            
  854.             int ColumnSize,
  855.                 Roll = 1;
  856.             NumberOfStrings = 1;
  857.             Random rnd = new Random();
  858.             Console.WriteLine("----------Формирование массива----------------\n");
  859.             do
  860.             {
  861.                 Console.Write("Введите количество строк: ");
  862.                 NumberOfStrings = Search_for_Bugs.ProverkaVvoda();
  863.                 if (NumberOfStrings <= 0)
  864.                 {
  865.                     Console.WriteLine("Количество строк не может быть меньше или равно 0\n");
  866.                 }
  867.             }
  868.             while (NumberOfStrings <= 0);            
  869.             rvanii_array = new int[NumberOfStrings][];
  870.             for (int i = 0; i < NumberOfStrings; i++)
  871.             {
  872.                 Console.Write("Введите количество Элементов в " + Roll + " строке: ");
  873.                 do
  874.                 {
  875.                     ColumnSize = Search_for_Bugs.ProverkaVvoda();
  876.                     if (ColumnSize <= 0)
  877.                     {
  878.                         Console.WriteLine("Я не хочу чтобы Массив пустовал!!!");
  879.                     }
  880.                 } while (ColumnSize <= 0);
  881.                 rvanii_array[i] = new int[ColumnSize];
  882.                 for (int j = 0; j < ColumnSize; j++)
  883.                 {
  884.                     rvanii_array[i][j] = Search_for_Bugs.InputNumber("Введите элемент:", MinNumber, MaxNumber);
  885.                 }
  886.                 Roll++;
  887.             }
  888.             Console.Clear();
  889.             Console.WriteLine("------------------Массив-----------------\n");
  890.             for (int i = 0; i < NumberOfStrings; i++)
  891.             {
  892.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  893.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  894.                 Console.WriteLine();
  895.             }
  896.             Console.WriteLine("\n-----------------------------------------");
  897.             return rvanii_array;
  898.         }
  899.         static int[][] RandomDobavlenie(ref int[][] rvanii_array, ref int NumberOfStrings, int ArrayMin, int ArrayMax)
  900.         {
  901.             Console.WriteLine("------------------Массив-----------------\n");
  902.             for (int i = 0; i < NumberOfStrings; i++)
  903.             {
  904.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  905.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  906.                 Console.WriteLine();
  907.             }
  908.             Console.WriteLine("\n-----------------------------------------\n");
  909.             Random rnd = new Random();
  910.             int ColumnSize,
  911.                 plus_string;
  912.             Console.Write("Введите номер строки с которой нужно добавить строку: ");
  913.             do
  914.             {
  915.                 plus_string = Search_for_Bugs.ProverkaVvoda();
  916.                 if ((plus_string > rvanii_array.Length + 1) || (plus_string <= 0))
  917.                 {
  918.                     Console.WriteLine("Строка не должна выходить за передлы массива!!!");
  919.                 }
  920.             }
  921.             while ((plus_string > rvanii_array.Length + 1) || (plus_string <= 0));
  922.             plus_string--;
  923.             Console.Write("Введите нижнюю границу массива:");
  924.             ArrayMin = Search_for_Bugs.ProverkaVvoda();
  925.             do
  926.             {
  927.                 Console.Write("Введите верхнюю границу массива:");
  928.                 ArrayMax = Search_for_Bugs.ProverkaVvoda();
  929.                 if (ArrayMax < ArrayMin)
  930.                 {
  931.                     Console.WriteLine("Верхняя граница не может быть меньше нижней!!!");
  932.                 }
  933.             } while (ArrayMax < ArrayMin);
  934.             int[][] new_dobavlenie = new int[rvanii_array.Length + 1][];
  935.             for (int i = 0; i < new_dobavlenie.Length; i++)
  936.             {
  937.                 if (i < plus_string)
  938.                 {
  939.                     new_dobavlenie[i] = new int[rvanii_array[i].Length];
  940.                     for (int j = 0; j < rvanii_array[i].Length; j++)
  941.                         new_dobavlenie[i][j] = rvanii_array[i][j];
  942.                 }
  943.                 if ((i >= plus_string) && (i != rvanii_array.Length))
  944.                 {
  945.                     new_dobavlenie[i + 1] = new int[rvanii_array[i].Length];
  946.                     for (int j = 0; j < rvanii_array[i].Length; j++)
  947.                         new_dobavlenie[i + 1][j] = rvanii_array[i][j];
  948.                 }
  949.                 if (i == plus_string)
  950.                 {
  951.                     Console.Write("Введите количество Элементов в задаваемой строке: ");
  952.                     ColumnSize = Search_for_Bugs.ProverkaVvoda();
  953.                     new_dobavlenie[i] = new int[ColumnSize];
  954.                     Random randm = new Random();
  955.                     for (int j = 0; j < new_dobavlenie[i].Length; j++)
  956.                     {
  957.                         new_dobavlenie[i][j] = randm.Next(ArrayMin, ArrayMax);
  958.                     }
  959.                 }
  960.             }
  961.             rvanii_array = new int[rvanii_array.Length + 1][];
  962.             for (int i = 0; i < rvanii_array.Length; i++)
  963.             {
  964.                 rvanii_array[i] = new int[new_dobavlenie[i].Length];
  965.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  966.                     rvanii_array[i][j] = new_dobavlenie[i][j];
  967.             }
  968.             Console.WriteLine("\n-------------Изменённый Массив------------\n");
  969.             for (int i = 0; i < rvanii_array.Length; i++)
  970.             {
  971.                 for (int j = 0; j < rvanii_array.Length; j++)
  972.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  973.                 Console.WriteLine();
  974.             }
  975.             Console.WriteLine("\n-----------------------------------------");
  976.             rvanii_array = new_dobavlenie;
  977.             return new_dobavlenie;
  978.         }
  979.         static int[][] VvodDobavlenie(ref int[][] rvanii_array, ref int NumberOfStrings, int ArrayMin, int ArrayMax)
  980.         {
  981.             Console.WriteLine("------------------Массив-----------------\n");
  982.             for (int i = 0; i < NumberOfStrings; i++)
  983.             {
  984.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  985.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  986.                 Console.WriteLine();
  987.             }
  988.             Random rnd = new Random();
  989.             int ColumnSize,
  990.                 plus_string;
  991.             Console.Write("Введите номер строки с которой нужно добавить строку: ");
  992.             do
  993.             {
  994.                 plus_string = Search_for_Bugs.ProverkaVvoda();
  995.                 if (plus_string > NumberOfStrings)
  996.                 {
  997.                     Console.WriteLine("Строка не должна выходить за передлы массива!!!");
  998.                 }
  999.             }
  1000.             while (plus_string > NumberOfStrings);            
  1001.             int[][] new_rvanii_array = new int[1][];
  1002.             int[][] new_dobavlenie = new int[NumberOfStrings + 1][];
  1003.             int index = 0;
  1004.             for (int i = 0; i < 1; i++)
  1005.             {
  1006.                 Console.Write("Введите количество Элементов в задаваемой строке: ");
  1007.                 ColumnSize = Search_for_Bugs.ProverkaVvoda();
  1008.                 new_rvanii_array[i] = new int[ColumnSize];
  1009.                 for (int j = 0; j < ColumnSize; j++)
  1010.                     new_rvanii_array[i][j] = rvanii_array[i][j] = Search_for_Bugs.InputNumber("Введите элемент:", MinNumber, MaxNumber);
  1011.             }
  1012.             for (int i = 0; i < NumberOfStrings + 1; i++)
  1013.             {
  1014.                 if (i < plus_string - 1)
  1015.                 {
  1016.                     for (int j = 0; j < rvanii_array[i].Length; j++)
  1017.                     {
  1018.                         new_dobavlenie[i][j] = rvanii_array[i][j];
  1019.                     }
  1020.                 }
  1021.                 if (i >= plus_string - 1 && i < plus_string + 1 - 1)
  1022.                 {
  1023.                     for (int j = 0; j < rvanii_array[i].Length; j++)
  1024.                     {
  1025.                         new_dobavlenie[i][j] = new_rvanii_array[index][j];
  1026.                         index++;
  1027.                     }
  1028.                 }
  1029.                 if (i >= plus_string + 1 - 1 && i < NumberOfStrings + 1)
  1030.                 {
  1031.                     for (int j = 0; j < rvanii_array[i].Length; j++)
  1032.                     {
  1033.                         new_dobavlenie[i][j] = rvanii_array[i - index][j];
  1034.                     }
  1035.                 }
  1036.             }
  1037.             Console.WriteLine("\n-------------Новый массив----------------");
  1038.             for (int i = 0; i < NumberOfStrings; i++)
  1039.             {
  1040.                 for (int j = 0; j < rvanii_array[i].Length; j++)
  1041.                     Console.Write(rvanii_array[i][j].ToString() + " ");
  1042.                 Console.WriteLine();
  1043.             }
  1044.             Console.WriteLine("\n-----------------------------------------");
  1045.             rvanii_array = new_dobavlenie;
  1046.             return new_dobavlenie;
  1047.         }
  1048.         //------------------------------------------------------------------------------------------------------------------------
  1049.         static void Main(string[] args)
  1050.         {
  1051.             Console.Clear(); //Очищение консоли
  1052.             int elementi = 0,
  1053.                 NumberOfStrings = 0,
  1054.                 stringSize = 0,
  1055.                 columnSize = 0,
  1056.                 ArrayMin = 0,
  1057.                 ArrayMax = 100;
  1058.             int[] massiv = null;
  1059.             int[,] dvumernii_array = null;
  1060.             do
  1061.             {
  1062.                 Text_Dialog.PrintMainMenu();
  1063.                 int elementmenu = Search_for_Bugs.ProverkaVvoda();
  1064.                 switch (elementmenu) //Выбор действия из меню
  1065.                 {
  1066.                     case 1:                        
  1067.                         massiv = Massiv(ref elementi, ref ArrayMin, ref ArrayMax, ref args);
  1068.                         break;
  1069.                     case 2:
  1070.                         {
  1071.                             DvumerniiArray(args, ArrayMin, ArrayMax, ref stringSize, ref columnSize, ref dvumernii_array);
  1072.                         }
  1073.                         break;
  1074.                     case 3:
  1075.                         {
  1076.                             RvaniiArray(args, ArrayMin, ArrayMax, ref NumberOfStrings);
  1077.                         }                        
  1078.                         break;
  1079.                     case 0:
  1080.                         Environment.Exit(0);  //Выход из консоли
  1081.                         break;
  1082.                     default:
  1083.                         Text_Dialog.PrintErrorMenu();
  1084.                         continue;
  1085.                 }
  1086.             } while (true);            
  1087.         }
  1088.     }
  1089. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement