Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Lab5
- {
- class MyArray
- {
- private double[] arr;
- private int lengthArr = 0;
- public MyArray(double[] inArr)
- {
- arr = inArr;
- lengthArr = inArr.Length;
- }
- public MyArray(int length)
- {
- Random val = new Random();
- lengthArr = length;
- arr = new double[lengthArr];
- for(int i = 0; i < lengthArr; i++)
- {
- arr[i] = val.Next(-32000, 32000) + val.NextDouble();
- }
- }
- public int numberMinAbs()
- {
- int num = 0;
- double tempMin = Math.Abs(arr[0]);
- for (int i = 1; i < this.lengthArr; i++)
- {
- if (tempMin > Math.Abs(arr[i]))
- {
- num = i;
- tempMin = Math.Abs(arr[i]);
- }
- }
- return num;
- }
- public double sumElem()
- {
- double sum = 0;
- bool flag = false;
- for (int i = 1; i < lengthArr; i++)
- {
- if (!flag)
- {
- if (arr[i] < 0) flag = true;
- }
- else
- {
- sum += Math.Abs(arr[i]);
- }
- }
- return sum;
- }
- public void compresssionArr(double a, double b)
- {
- int k = lengthArr-1; //для переноса в конец массива
- int i = 0;
- while (i != lengthArr)
- {
- if (arr[i] < a || arr[i] > b) { arr[i] = arr[k]; arr[k] = 0; k--; }
- else i++;
- }
- }
- public void printArr()
- {
- for (int i = 0; i < lengthArr; i++)
- {
- Console.Write("[{0}] = {1}", i, arr[i]);
- Console.WriteLine();
- }
- Console.WriteLine();
- }
- }
- class MainClass
- {
- static MyArray arr;
- static void Main()
- {
- enterArr();
- Console.ReadKey();
- }
- static void enterArr()
- {
- try
- {
- Console.Write("Введите размерность массива: ");
- int lengthArr = int.Parse(Console.ReadLine());
- double[] inArr = new double[lengthArr];
- Console.Write("Заполнить массив случайными числами? (y/n): ");
- switch (char.Parse(Console.ReadLine()))
- {
- case 'y':
- arr = new MyArray(lengthArr);
- menu();
- break;
- case 'n':
- Console.WriteLine("Ввидите значения элементов массива");
- for (int i = 0; i < lengthArr; i++)
- {
- Console.Write("[{0}]: ", i);
- inArr[i] = double.Parse(Console.ReadLine());
- }
- arr = new MyArray(inArr);
- menu();
- break;
- default:
- Console.WriteLine("Ошибка ввода! Повторите снова...");
- enterArr();
- break;
- }
- }
- catch (FormatException)
- {
- Console.WriteLine("Ошибка ввода! Повторите ввод...");
- enterArr();
- }
- }
- static void menu()
- {
- Console.WriteLine("Выберите номер функции: \n 1.Вывести номер минимального по модулю элемента массива; \n 2.Вывести сумму модулей элементов массива; \n 3. Сжать массив; \n 4. Вывести элементы массива на экран; \n 5. Ввести новый массив; \n 6. Выход.");
- switch (int.Parse(Console.ReadLine()))
- {
- case 1:
- Console.WriteLine("Минимальный по модулю элемент: {0}", arr.numberMinAbs());
- menu();
- break;
- case 2:
- Console.WriteLine("Сумма модулей всех элементов: {0}", arr.sumElem());
- menu();
- break;
- case 3:
- Console.WriteLine("Введите интервал [a, b]");
- Console.Write("Введите интервал a: ");
- double a = double.Parse(Console.ReadLine());
- Console.Write("Введите интервал b: ");
- double b = double.Parse(Console.ReadLine());
- arr.compresssionArr(a, b);
- arr.printArr();
- menu();
- break;
- case 4:
- arr.printArr();
- menu();
- break;
- case 5:
- enterArr();
- menu();
- break;
- case 6:
- Environment.Exit(0);
- break;
- default:
- Console.WriteLine("Ошибка ввода! Повторите снова...", arr.sumElem());
- menu();
- break;
- }
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement