Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp27
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] mas = null;
- int size = 0;
- int answer1, answer2;
- bool ok;
- Random rnd = new Random();
- do
- {
- Console.WriteLine("\n1. Формирование массива. 2. Вывод массива. 3. Удаление из массива. 4. Добавление в массив. 5. Перестановка. 6. Поиск. 7. Сортировка. 8. Поиск в отсортированном массиве. 9. Выход");
- do
- {
- ok = int.TryParse(Console.ReadLine(), out answer1);
- if (ok == false)
- {
- Console.WriteLine("Ошибка при вводе числа");
- }
- } while (ok == false);//!ok
- switch (answer1)
- {
- case 1:
- {
- //формирование массива
- do
- {
- Console.WriteLine("Введите количество элементов массива");
- ok = int.TryParse(Console.ReadLine(), out size);
- if (ok == false)
- {
- Console.WriteLine("Ошибка при вводе числа");
- }
- } while (ok == false);//!ok
- mas = new int[size];
- // меню для формирования массива
- do
- {
- Console.WriteLine(@"1. С помощью ДСЧ. 2. Ввод с клавиатуры. 3. Выход");
- do
- {
- ok = int.TryParse(Console.ReadLine(), out answer2);
- if (ok == false)
- {
- Console.WriteLine("Ошибка при вводе числа");
- }
- } while (ok == false);//!ok
- switch (answer2)
- {
- case 1:
- {
- //формирование ДСЧ
- for (int i = 0; i < size; i++)
- mas[i] = rnd.Next(-100, 100);
- Console.WriteLine("Массив сформирован");
- break;
- }
- case 2:
- {
- //ввод массива с клавиатуры
- for (int i = 0; i < size; i++)
- {
- do
- {
- Console.WriteLine("Введите элемент массива");
- ok = int.TryParse(Console.ReadLine(), out mas[i]);
- if (ok == false)
- {
- Console.WriteLine("Ошибка при вводе числа");
- }
- } while (ok == false);//!ok
- Console.WriteLine("Массив сформирован");
- }
- //Console.WriteLine(mas[i] + " ");
- break;
- }
- }
- } while (answer2 <= 2);
- break;
- }
- case 2:
- {
- //печать массива
- if (size == 0) Console.WriteLine("Пустой массив");
- for (int i = 0; i < size; i++)
- Console.Write(mas[i] + " ");
- Console.WriteLine();
- break;
- }
- case 3:
- {
- //удаление элемента из массива ЧЕТНЫХ ЭЛЕМЕНТОВ
- if (size == 0)
- {
- Console.WriteLine("Массив пустой, удаление невозможно");
- break;
- }
- int[] temp = new int[size - 1];
- int j = 0;
- for (int i = 0; i < size; i++)
- {
- if (i != (size - 1))
- {
- temp[j] = mas[i];
- j++;
- }
- }
- mas = temp;
- size--;
- Console.WriteLine("Четные элементы удалены");
- for (int i = 0; i < size; i += 2)
- Console.Write(mas[i] + " ");
- Console.WriteLine();
- break;
- }
- case 4:
- {
- //добавление N элементов, начиная с номера K
- int K, N, i = 0, u = 0, r, vibor, n = mas.Length;
- int[] mas1 = null;
- do
- {
- Console.WriteLine("Введите номер, с которого нужно начать вводить переменные");
- string buf = Console.ReadLine();
- ok = int.TryParse(buf, out K);
- if (!ok || K <= 0 || K > n + 1)
- Console.WriteLine("Ошибка!");
- } while (!ok || K <= 0 || K > n + 1);
- Console.WriteLine("Номер равен: " + K);
- do
- {
- Console.WriteLine("Введите количество элементов");
- string buf = Console.ReadLine();
- ok = int.TryParse(buf, out N);
- if (!ok || N <= 0) Console.WriteLine("Ошибка!");
- } while (!ok || N <= 0);
- K -= 1;
- //mas1 = new int[K + n];
- mas1 = new int[n + N];
- //for (i = 0; i < n; i++)
- //{
- // mas1[i] = mas[i];
- //} ЗОЧЕМ
- Console.WriteLine("Выбери один из пунктов меню");
- Console.WriteLine("1 - Ввести числа самостоятельно");
- Console.WriteLine("2 - Ввести случайные числа");
- do
- {
- ok = int.TryParse(Console.ReadLine(), out vibor);
- if (ok == false)
- Console.WriteLine("Ошибка при вводе числа");
- } while (!ok);
- switch (vibor)
- {
- case 1:
- {
- for (i = 0; i < K; i++) //копирую все от 0 до К в новый массив
- {
- mas1[i] = mas[i];
- }
- for (i = K; i < n; i++)//копирую все с K до n из старого массива в новый с i+N (смещаю на колво новых)
- {
- mas1[i + N] = mas[i];
- }
- for (i = K; i < N; i++)
- {
- {
- Console.WriteLine("Введите значение элемента");
- string buf = Console.ReadLine();
- ok = int.TryParse(buf, out r);
- if (!ok) Console.WriteLine("Ошибка!");
- } while (!ok);
- mas1[i] = r;
- }
- }
- break;
- case 2:
- {
- do
- {
- for (i = n - 1; i >= K; i -= 1)
- {
- mas1[i + 1] = mas1[i];
- }
- mas1[K] = rnd.Next(10);
- n = n + 1;
- u += 1;
- K = K + 1;
- } while (u < N);
- break;
- }
- default:
- Console.WriteLine("Пункта с данным номером не существует в меню");
- break;
- }
- //for (i = 0; i < size; i++) А ЗАЧЕМ ТУТ СТАРЫЙ ВЫВОДИТЬ?
- // Console.Write(mas[i] + " ");
- //Console.WriteLine();
- for (i = 0; i < n + N; i++)
- {
- Console.Write($"{mas1[i]}, ");
- }
- break;
- }
- case 5:
- {
- //сдвинуть циклически на M элементов вправо
- int M, t;
- do
- {
- Console.WriteLine("Введтие значение, на сколько элементов необходимо сдвинуть массив: ");
- string buf = Console.ReadLine();
- ok = int.TryParse(buf, out M);
- if (!ok)
- Console.WriteLine("Введено неверное значение!");
- } while (!ok);
- for (int l = 0; l < M; l++)
- {
- t = mas[size - 1];
- for (int i = size - 1; i > 0; i--)
- {
- mas[i] = mas[i - 1];
- }
- mas[0] = t;
- }
- Console.WriteLine("Массив сдвинут");
- for (int i = 0; i < size; i++)
- Console.Write(mas[i] + " ");
- Console.WriteLine();
- break;
- }
- case 6:
- {
- //поиск элемента с заданным ключом (значением)
- int nom = -1, x;
- do
- {
- Console.WriteLine("Введтие значение элемента: ");
- string buf = Console.ReadLine();
- ok = int.TryParse(buf, out x);
- if (!ok)
- Console.WriteLine("Введено неверное значение!");
- } while (!ok);
- for (int i = 0; i < size; i++)
- if (mas[i] == x)
- {
- nom = i + 1;
- break;
- }
- if (nom >= 0)
- Console.WriteLine("Номер = {0}", nom++);
- else
- Console.WriteLine("Элемент не найден");
- break;
- }
- case 7:
- {
- //простой выбор
- int min, n_min, j;
- for (int i = 0; i < (size - 1); i++)
- {
- min = mas[i];
- n_min = i;
- for (j = i + 1; j < size; j++)
- if (mas[j] < min)
- {
- min = mas[j];
- n_min = j;
- }
- mas[n_min] = mas[i];
- mas[i] = min;
- }
- Console.WriteLine("Массив отсортирован простым выбором");
- for (int i = 0; i < size; i++)
- Console.Write(mas[i] + " ");
- Console.WriteLine();
- break;
- }
- case 8:
- {
- //поиск в отсортированном массиве
- break;
- }
- }//конец switch 1
- } while (answer1 < 9);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment