static void StepArray() { int min = int.MaxValue, max = int.MinValue; Console.Clear(); int[][] SArray = new int[0][]; if (AskForInput("Ступенчатого")) { ReadingFromFile RFF = new ReadingFromFile(); try { SArray = RFF.StepArrayFromFile(); } catch { Console.WriteLine("Не удалось считать из файла"); Menu(); } } else { int Lines = 0; bool Answer = false; while (!Answer) { Console.Clear(); Console.Write("Введите кол-во строк: "); Answer = int.TryParse(Console.ReadLine(), out Lines); if (!Answer) { Console.WriteLine(); CheckKeyForMenu(); } break; } int[][] CurrentArray = new int[Lines][]; for (int i = 0; i < Lines; i++) { string[] tmp = { "" }; bool Approwed = false; while (!Approwed) { bool Good = false; Console.Clear(); Console.Write("\nВведите {0} строку через пробел: ", i + 1); tmp = Console.ReadLine().Split(' '); foreach (string El in tmp) { try { int.Parse(El); Good = true; } catch { CheckKeyForMenu(); Good = false; break; } } if (Good) { Approwed = true; } } CurrentArray[i] = new int[tmp.Length]; for (int j = 0; j < tmp.Length; j++) { CurrentArray[i][j] = int.Parse(tmp[j]); } } SArray = CurrentArray; } // Я бы вас убил за такие циклы, но вы победили, потому что я уже убил самого себя за такие приколы. bool AskEditor() { while (true) { Console.Clear(); Console.WriteLine("Хотите изменить элементы массива?[Y/n]"); int key = (int)Console.ReadKey().Key; switch (key) { case 89: //Y return(true); case 78: //N return(false); case 27: //ESC Menu(); break; } } } int[][] GetEdited(int[][] CuArray) { if (!AskEditor()) { return(CuArray); } while (true) { Console.Clear(); Console.WriteLine("\nКакой массив вы хотите изменить?"); for (int i = 0; i < CuArray.Length; i++) { Console.Write("\n" + (i + 1) + ") "); for (int j = 0; j < CuArray[i].Length; j++) { Console.Write("{0} ", CuArray[i][j]); } Console.Write("\n"); } bool Choice = int.TryParse(Console.ReadLine(), out int line); if (Choice && line > 0 && line <= CuArray.Length) { while (true) { Console.Clear(); Console.WriteLine("\nКакой элемент вы хотите изменить?"); for (int i = 0; i < CuArray[line - 1].Length; i++) { Console.Write("{0}\t", CuArray[line - 1][i]); } Choice = int.TryParse(Console.ReadLine(), out int elementNum); if (Choice && elementNum > 0 && elementNum <= CuArray[line - 1].Length) { while (true) { Console.WriteLine("Заменить {0} на ", CuArray[line - 1][elementNum - 1]); Choice = int.TryParse(Console.ReadLine(), out int newNum); if (Choice) { CuArray[line - 1][elementNum - 1] = newNum; return(GetEdited(CuArray)); } else { CheckKeyForMenu(); } } } else { CheckKeyForMenu(); } } } else { CheckKeyForMenu(); } } } SArray = GetEdited(SArray); Console.Clear(); Console.WriteLine("Вывожу массив..."); for (int i = 0; i < SArray.Length; i++) { Console.Write("\nМассив {0}\n", i + 1); for (int j = 0; j < SArray[i].Length; j++) { Console.Write("{0}\t", SArray[i][j]); if (min > SArray[i][j]) { min = SArray[i][j]; } if (max < SArray[i][j]) { max = SArray[i][j]; } } } Console.WriteLine("\n\nМаксимальное значение: {0}\nМинимальное значение: {1}", max, min); Console.WriteLine("\nНажминте любую клавишу для возвращения в меню"); Console.ReadKey(); Menu(); }
static void SingleArray_SystemArray() { Console.Clear(); int[] SArray = new int[0]; if (AskForInput("одномерного массива")) { ReadingFromFile RFF = new ReadingFromFile(); try { SArray = RFF.SingleArrayFromFile(); } catch { Console.WriteLine("Не удалось считать из файла"); Menu(); } } else { while (true) { Console.Clear(); Console.WriteLine("Введите массив, каждый элемент через пробел"); string[] CurrentArray = Console.ReadLine().Split(' '); SArray = new int[CurrentArray.Length]; try { for (int i = 0; i < SArray.Length; i++) { SArray[i] = int.Parse(CurrentArray[i]); } break; } catch { CheckKeyForMenu(); } } } //Вывод Console.Clear(); Console.WriteLine("Вывожу массив"); foreach (var item in SArray) { Console.Write("{0}\t", item); } Console.WriteLine("\n\nМаксимальное значение: \nНомер:{2} \tИндекс:{0}\tЗначение:{1}", Array.IndexOf(SArray, SArray.Max()), SArray.Max(), Array.IndexOf(SArray, SArray.Max()) + 1); Console.WriteLine("\n\nМинимальное значение: \nНомер:{2} \tИндекс:{0}\tЗначение:{1}", Array.IndexOf(SArray, SArray.Min()), SArray.Min(), Array.IndexOf(SArray, SArray.Min()) + 1); Array.Sort(SArray); Console.WriteLine("\n\nСортировка по возрастанию"); foreach (var item in SArray) { Console.Write("{0}\t", item); } Array.Reverse(SArray); Console.WriteLine("\n\nСортировка по убыванию"); foreach (var item in SArray) { Console.Write("{0}\t", item); } Console.WriteLine("\n\nВывод четных чисел массива"); Array.Sort(SArray); int counter = 0;//Сколько четных элементов for (int i = 0; i < SArray.Length; i++) { if (SArray[i] % 2 == 0) { counter++; } } if (counter == 0) { Console.WriteLine("В массиве нет четных чисел."); } else//запись четных элементов { int[] a_sortByCodeArray_even = Array.FindAll(SArray, x => x % 2 == 0); // Вывод foreach (var item in a_sortByCodeArray_even) { Console.Write("{0}\t", item); } } #region e Console.WriteLine("\nНажминте любую клавишу для возвращения в меню"); Console.ReadKey(); Menu(); #endregion }
static void DoubleArray() { Console.Clear(); int[,] _Case(int Arr) { int[,] arr = new int[0, 0]; string which = ""; switch (Arr) { case 1: which = "первого"; break; case 2: which = "второго"; break; default: break; } if (AskForInput(which + " двумерного массива")) { ReadingFromFile RFF = new ReadingFromFile(); try { arr = RFF.DoubleArrayFromFile(Arr); } catch { Console.WriteLine("Не удалось считать из файла"); Menu(); } return(arr); } else { string[] LineOfArray; bool Answer = false; int lines = 0, maxElements = 0; while (!Answer) { Console.Clear(); Console.Write("Введите кол-во строк: "); Answer = int.TryParse(Console.ReadLine(), out lines); if (!Answer) { Console.WriteLine(); CheckKeyForMenu(); } } Answer = false; while (!Answer) { Console.Clear(); Console.Write("\nВведите кол-во элементов: "); Answer = int.TryParse(Console.ReadLine(), out maxElements); } LineOfArray = new string[lines]; arr = new int[lines, maxElements]; Console.Clear(); Console.WriteLine("\n\nМассив {0}x{1}", lines, maxElements); Console.WriteLine("\nВводите строку массива\n"); for (int i = 0; i < lines; i++) { while (true) { Console.Write("{0} | ", i + 1); string ThisLine = Console.ReadLine(); LineOfArray[i] = ThisLine; if (ThisLine.Split(' ').Length != maxElements || !int.TryParse(ThisLine[0].ToString(), out int nothing)) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Возникла ошибка, перепишите строку заново"); Console.ResetColor(); CheckKeyForMenu(); } else { break; } } } return(arr); } } int[,] DArrayF = _Case(1); int[,] DArrayS = _Case(2); int max = 0, min = 0; int pillar_maxInd = 0, pillar_minInd = 0, l_maxInd = 0, l_minInd = 0; //Output Console.WriteLine("Вывожу массив 1"); for (int i = 0; i < DArrayF.GetLength(0); i++) { Console.WriteLine(); for (int j = 0; j < DArrayF.GetLength(1); j++) { Console.Write("{0}\t", DArrayF[i, j]); } } Console.WriteLine(); Console.WriteLine("\nВывожу массив 2"); for (int i = 0; i < DArrayS.GetLength(0); i++) { Console.WriteLine(); for (int j = 0; j < DArrayS.GetLength(1); j++) { Console.Write("{0}\t", DArrayS[i, j]); } } for (int i = 0; i < DArrayF.GetLength(0); i++) { for (int j = 0; j < DArrayF.GetLength(1); j++) { if (max < DArrayF[i, j]) { max = DArrayF[i, j]; l_maxInd = i; pillar_maxInd = j; } if (min > DArrayF[i, j]) { min = DArrayF[i, j]; l_minInd = i; pillar_minInd = j; } } } Console.WriteLine("\n\nМаксимальное значение в первом массиве: \nНомер: {3};{4} \tИндекс: {0};{1}\tЗначение: {2}", l_maxInd, pillar_maxInd, max, l_maxInd + 1, pillar_maxInd + 1); Console.WriteLine("\nМинимальное значение в первом массиве: \nНомер: {3};{4} \tИндекс: {0};{1}\tЗначение: {2}", l_minInd, pillar_minInd, min, l_minInd + 1, pillar_minInd + 1); int summ_a1 = 0, summ_a2 = 0; int mult_a = 0; foreach (int el in DArrayF) { summ_a1 += el; mult_a *= el; } foreach (int el in DArrayS) { summ_a2 += el; mult_a *= el; } Console.WriteLine("\nПроизведение двух массивов: {0}\nРазность двух массивов: {1}\nСумма двух массивов: {2}", summ_a1 * summ_a2, summ_a1 - summ_a2, summ_a1 + summ_a2); Console.WriteLine("\n\nНажмите любую клавишу для возвращения в главное меню"); Console.ReadKey(); Menu(); }
static void SingleArray() { int inMin = 0, inMax = 0; int Min, Max; Console.Clear(); int[] SArray = new int[0]; if (AskForInput("одномерного массива")) { ReadingFromFile RFF = new ReadingFromFile(); try { SArray = RFF.SingleArrayFromFile(); } catch { Console.WriteLine("Не удалось считать из файла"); Menu(); } } else { while (true) { Console.Clear(); Console.WriteLine("Введите массив, каждый элемент через пробел"); string[] CurrentArray = Console.ReadLine().Split(' '); SArray = new int[CurrentArray.Length]; try { for (int i = 0; i < SArray.Length; i++) { SArray[i] = int.Parse(CurrentArray[i]); } break; } catch { CheckKeyForMenu(); } } } Min = SArray[0]; Max = SArray[0]; //MinMax for (int i = 0; i < SArray.Length; i++) { if (Max < SArray[i]) { Max = SArray[i]; inMax = i; } if (Min >= SArray[i]) { Min = SArray[i]; inMin = i; } } //Output Console.Clear(); Console.WriteLine("Массив"); foreach (int element in SArray) { Console.Write("{0}\t", element); } Console.WriteLine("\n\nСамое большое число\nНомер:{2} \tИндекс:{0}\tЗначение:{1}", inMax, Max, inMax + 1); Console.WriteLine("\nСамое маленькое число\nНомер:{2} \tИндекс:{0}\tЗначение:{1}", inMin, Min, inMin + 1); for (int i = 0; i < SArray.Length; i++) { for (int j = i; j < SArray.Length; j++) { if (SArray[i] > SArray[j]) { int temp = SArray[i]; SArray[i] = SArray[j]; SArray[j] = temp; } } } Console.WriteLine("\n\nПо возрастанию"); foreach (int element in SArray) { Console.Write("{0}\t", element); } for (int i = 0; i < SArray.Length; i++) { for (int j = i; j < SArray.Length; j++) { if (SArray[i] < SArray[j]) { int temp = SArray[i]; SArray[i] = SArray[j]; SArray[j] = temp; } } } Console.WriteLine("\n\nПо убыванию"); foreach (int element in SArray) { Console.Write("{0}\t", element); } Console.WriteLine("\n\nЧетные"); int n2 = 0; for (int i = 0; i < SArray.Length; i++) { if (SArray[i] % 2 == 0) { n2++; } } if (n2 == 0) { Console.WriteLine("В массиве не было четных чисел."); } else { for (int i = 0; i < SArray.Length; i++) { for (int j = i; j < SArray.Length; j++) { if (SArray[i] > SArray[j]) { int temp = SArray[i]; SArray[i] = SArray[j]; SArray[j] = temp; } } } int[] SArray_even = new int[n2]; int f = 0; for (int k = 0; k < SArray.Length; k++) { if (SArray[k] % 2 == 0) { SArray_even[f] = SArray[k]; f++; } } for (int i = 0; i < n2; i++) { Console.Write("{0}\t", SArray_even[i]); } } #region e Console.WriteLine("\nНажминте любую клавишу для возвращения в меню"); Console.ReadKey(); Menu(); #endregion }