Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConsoleApplication18
- {
- class Dialog
- {
- public static void PrintMenu0()
- {
- Console.WriteLine("1.Работа с двумерным массивом");
- Console.WriteLine("2.Работа со строкой");
- Console.WriteLine("3.Выход");
- }
- public static void PrintMenu1()
- {
- Console.WriteLine("1.Создать двумерный массив");
- Console.WriteLine("2.Напечатать массив");
- Console.WriteLine("3.Удалить из массива первую строку, в которой есть хотя бы один элемент равный 0");
- Console.WriteLine("4.Выход");
- }
- public static void PrintMenu2()
- {
- Console.WriteLine("1.Формирование массива вручную");
- Console.WriteLine("2.Формирование массива с помощью ДСЧ");
- Console.WriteLine("3.Назад");
- }
- public static void PrintMenu3()
- {
- Console.WriteLine("1.Формирование строк вручную");
- Console.WriteLine("2.Формирование строки из заранее сформированного массива строк");
- Console.WriteLine("3.Перевернуть каждое четное слово в строке");
- Console.WriteLine("4.Выход");
- }
- public static int InputNumber(string rs, int min_n, int max_n)
- {
- int num = 0;
- bool ok = false;
- do
- {
- try
- {
- Console.WriteLine(rs);
- num = Convert.ToInt32(Console.ReadLine());
- if (num >= min_n && num < max_n) ok = true;
- else ok = false;
- }
- catch (FormatException)
- {
- Console.WriteLine("Ошибка ввода");
- ok = false;
- }
- catch (OverflowException)
- {
- Console.WriteLine("Ошибка ввода");
- ok = false;
- }
- } while (!ok);
- return num;
- }
- }
- class Program
- {
- const int min_n = 1;
- const int max_n = 100;
- static bool ConsoleFormMatr(out int string_n, out int column_n, out double[,] matr)
- {
- int i, j;
- string_n = Dialog.InputNumber("Введите количество строк матрицы", min_n, max_n);
- column_n = Dialog.InputNumber("Введите количество столбцов матрицы", min_n, max_n);
- matr = new double [string_n, column_n];
- for (i = 0; i < string_n; i++)
- for (j = 0; j < column_n; j++)
- {
- matr[i,j]= Dialog.InputNumber("Введите элемент матрицы", -10, 10);
- }
- Console.WriteLine("Массив создан");
- return true;
- }
- static bool RandomFormMatr(out int string_n, out int column_n, out double[,] matr)
- {
- int i, j;
- Random rnd = new Random();
- string_n = Dialog.InputNumber("Введите количество строк матрицы", min_n, max_n);
- column_n = Dialog.InputNumber("Введите количество столбцов матрицы", min_n, max_n);
- matr = new double[string_n, column_n];
- for (i = 0; i < string_n; i++)
- for (j = 0; j < column_n; j++)
- {
- matr[i, j] = rnd.Next(-100,100);
- }
- Console.WriteLine("Массив создан");
- return true;
- }
- static void PrintArray(int string_n, int column_n, double[,] matr)
- {
- int i, j;
- for (i = 0; i < string_n; i++)
- {
- for (j = 0; j < column_n; j++)
- Console.Write(matr[i, j].ToString() + " ");
- Console.WriteLine();
- }
- }
- static void DeleteStringFromMatr(ref double[,] matr, ref int string_n, ref int column_n)
- {
- if (string_n == 0) Console.WriteLine("Массив пуст. Создайте массив!");
- else
- {
- int i, j, a = -1;
- int string_n1 = string_n - 1;
- for (i = 0; i < string_n; i++)
- {
- for (j = 0; j < column_n; j++)
- if (matr[i, j] == 0)
- {
- string_n = string_n1;
- a = i;
- break;
- }
- if (a > -1) break;
- }
- if (a > -1)
- {
- for (i = a; i < string_n1; i++)
- {
- for (j = 0; j < column_n; j++)
- matr[i, j] = matr[i + 1, j];
- }
- for (i = 0; i < string_n; i++)
- {
- for (j = 0; j < column_n; j++)
- Console.Write(matr[i, j].ToString() + " ");
- Console.WriteLine();
- }
- }
- else Console.WriteLine("Нулей в массиве нет");
- }
- }
- static bool ConsoleFormArray(out string str)
- {
- Console.WriteLine("Введите строку");
- str = Console.ReadLine();
- if ((str == "") || (str == " "))
- {
- Console.WriteLine("Введена пустая строка.Повторите ввод!");
- return false;
- }
- for (int i = 0; i < str.Length - 1; i++)
- {
- if (!Prov(str))
- {
- Console.WriteLine("Неправильный ввод. Строка не может содержать два и более знаков между словами");
- return false;
- }
- }
- return true;
- }
- public static bool Prov(string str)
- {
- for (int i = 0; i < str.Length - 1; i++)
- {
- if (str[i] == (' ' | ',' | '!' | '?' | '.' | ';' | ':')) { if (str[i + 1] == (' ' | ',' | '!' | '?' | '.' | ';' | ':')) { return false; } }
- }
- return true;
- }
- public static bool StringForms(ref string str)
- {
- char[] stroka1 = { 'А', 'н', 'я', ' ', 'б', 'о', 'л', 'ь', 'ш', 'а', 'я', ' ', 'у', 'м', 'н', 'и', 'ц', 'а',' ', '!' };
- char[] stroka2 = { 'К', 'а', 'т', 'а', 'р', 'и', 'н', 'а', ' ', 'л', 'у', 'ч', 'ш', 'е', ' ', 'в', 'с', 'е', 'х', ' ', '!' };
- char[] stroka3 = { 'Ж', 'е', 'н', 'я', ' ', 'р', 'ы', 'ж', 'и', 'й', ' ', '?' };
- Console.WriteLine("1.Выбери строку 1: Аня большая умница!");
- Console.WriteLine("2.Выбери строку 2:Катарина лучше всех!");
- Console.WriteLine("3.Выбери строку 3:Женя рыжий?");
- Console.WriteLine("4.Вернуться в меню");
- int a = 1;
- do
- {
- a = Convert.ToInt32(Console.ReadLine());
- switch (a)
- {
- case 1:
- {
- str = new string(stroka1);
- Console.WriteLine(str);
- Console.WriteLine("Строка создана");
- break;
- }
- case 2:
- {
- str = new string(stroka2);
- Console.WriteLine(str);
- Console.WriteLine("Строка создана");
- break;
- }
- case 3:
- {
- str = new string(stroka3);
- Console.WriteLine(str);
- Console.WriteLine("Строка создана");
- break;
- }
- case 4: break;
- default: Console.WriteLine("Нет такого пункта в меню"); break;
- }
- } while (a == 0);
- return true;
- }
- static string[] ReverseString(ref string str)
- {
- int k;
- for (k = 0; k < str.Length-1; k++)
- if (str[k] == (' '|','|'.'|'!'|'?'|';') && str[k + 1] ==( ' '|','|'.'|'!'|'?'|';'))
- {
- str = str.Remove(k, 1);
- k--;
- }
- char[] znaki = { ' ',';', ':', '.', ',','?','!'};
- string znak = new string(znaki);
- string[] art = str.Split(znaki);
- for (k = 1; k < art.Length; k += 2)
- {
- char[] array = art[k].ToCharArray();
- Array.Reverse(array);
- art[k] = new string(array);
- }
- string str1 = "";
- for (int i = 0; i < art.Length; i++)
- {
- str1 += art[i];
- str1 += " ";
- }
- str = str1;
- str = str.Trim();
- for (k = 0; k < str.Length - 1; k++)
- if (str[k] ==' ' && str[k + 1] ==' ')
- {
- str = str.Remove(k, 1);
- k--;
- }
- Console.WriteLine(str);
- return art;
- }
- static void Matr()
- {
- bool createMatr = false;
- int politop, formMatr;
- double[,] matr = new double[0, 0];
- int string_n = 0, column_n = 0;
- do
- {
- Dialog.PrintMenu1();
- politop = Convert.ToInt32(Console.ReadLine());
- switch (politop)
- {
- case 1:
- {
- Dialog.PrintMenu2();
- formMatr = Convert.ToInt32(Console.ReadLine());
- switch (formMatr)
- {
- case 1:
- {
- createMatr = ConsoleFormMatr(out string_n, out column_n, out matr);
- break;
- }
- case 2:
- {
- createMatr = RandomFormMatr(out string_n, out column_n, out matr);
- break;
- }
- default: Console.WriteLine("Такого пункта в меню нет"); break;
- }
- break;
- }
- case 2:
- {
- if (createMatr) PrintArray(string_n, column_n, matr);
- else Console.WriteLine("массив не создан");
- break;
- }
- case 3:
- {
- if (createMatr) DeleteStringFromMatr(ref matr, ref string_n, ref column_n);
- else Console.WriteLine("массив не создан");
- break;
- }
- case 4: break;
- default: Console.WriteLine("Нет такого пункта в меню"); break;
- }
- } while (politop != 4);
- }
- static void Stroka()
- {
- bool createString = false;
- int politop;
- string str=" ";
- do
- {
- Dialog.PrintMenu3();
- politop = Convert.ToInt32(Console.ReadLine());
- switch (politop)
- {
- case 1:
- {
- do
- {
- createString = ConsoleFormArray(out str);
- } while (createString != true);
- break;
- }
- case 2:
- {
- createString = StringForms(ref str);
- break;
- }
- case 3:
- {
- if (createString) ReverseString(ref str);
- else Console.WriteLine("Строка не создана");
- break;
- }
- case 4: break;
- default: Console.WriteLine("Нет такого пункта в меню"); break;
- }
- } while (politop != 4);
- }
- static void Main(string[] args)
- {
- int politop;
- do
- {
- Dialog.PrintMenu0();
- politop = Convert.ToInt32(Console.ReadLine());
- switch (politop)
- {
- case 1:
- {
- Matr();
- break;
- }
- case 2:
- {
- Stroka();
- break;
- }
- case 3: break;
- default: Console.WriteLine("Нет такого пункта в меню"); break;
- }
- } while (politop != 3);
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement