Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Linq;
- /// <summary>
- /// Самостоятельная работа
- /// Адышев Барсбек БПИ1911
- /// 16.11.2019
- /// </summary>
- namespace AdyshevB1911_
- {
- class Program
- {
- static Random rd = new Random();
- static void Main(string[] args)
- {
- do
- {
- Console.Clear();
- int N = Check();
- int K = Check();
- string[,] array_1 = new string[N, K];
- array_1 = EmptyArray(array_1, N, K);
- array_1 = Array(array_1, N, K);
- ShowArray(array_1, N, K);
- WaterDigit(array_1, N, K);
- Console.WriteLine("Если хотите продолжить, нажмите любую клавишу.В противном случае нажмите Escape");
- }
- while (Console.ReadKey().Key != ConsoleKey.Escape);
- }
- /// <summary>
- /// Метод возвращает массив заполненный рандомным количеством иксов без полостей.
- /// </summary>
- /// <param name="array_1"> Массив для заполнения иксами. </param>
- /// <param name="n"> Количество строк массива. </param>
- /// <param name="k">Количество столбцов массива. </param>
- /// <returns>Возвращает заполненный иксами массив. </returns>
- static string[,] Array(string[,] array_1, int n, int k)
- {
- for (int j = 0; j < k; j++)
- for (int i = rd.Next(0, n + 1); i < n; i++)
- { array_1[i, j] = "x"; }
- return array_1;
- }
- /// <summary>
- /// Метод заполняет массив пробелами.
- /// </summary>
- /// <param name="array_1"> Необходимый для заполнения пробелами массив. </param>
- /// <param name="n"> Количество строк массива. </param>
- /// <param name="k">Количество столбцов массива. </param>
- /// <returns> Возвращает заполненный пробелами массив .</returns>
- static string[,] EmptyArray(string[,] array_1, int n, int k)
- {
- for (int i = 0; i < n; i++)
- for (int j = 0; j < k; j++)
- { array_1[i, j] = " "; }
- return array_1;
- }
- /// <summary>
- /// Метод выводит в консоль все элементы полученного на входе массива.
- /// </summary>
- /// <param name="array"> Массив, который нужно отобразить в консоли.</param>
- /// <param name="n"> Количество строк массива. </param>
- /// <param name="k"> Количество столбцов массива. </param>
- static void ShowArray(string[,] array, int n, int k)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < k; j++)
- { Console.Write(array[i, j]); }
- Console.WriteLine();
- }
- }
- /// <summary>
- /// Метод возвращает число, а именно количество так называемой "воды".
- /// </summary>
- /// <param name="array"></param>
- /// <param name="n"></param>
- /// <param name="k"></param>
- /// <returns></returns>
- static void WaterDigit(string[,] array, int n, int k)
- {
- int amount = 0;
- string sign = "?";
- int answer = 0;
- for (int i = n - 1; i > 0; i--)
- {
- amount = 0;
- sign = "?";
- for (int j = k - 1; j > -1; j--)
- {
- if (array[i, j] == "x")
- {
- if (sign == "x")
- answer += amount;
- sign = "x";
- amount = 0;
- }
- else if (sign == "x")
- {
- amount++;
- array[i, j] = "x";
- }
- }
- }
- Console.WriteLine(answer);
- }
- /// <summary>
- /// FormatException - выводит ошибку при неверном формате ввода данных
- /// ArgumentNullException - выводит ошибку при отсутствии ввода пользователем.
- /// StackoverFlowException - выводит ошибку при недостатке активной памяти компьютера.
- /// Создается меню по принципам проверки введенных пользователем данных.Метод приводит пользователя к правильному введению данных (формата и т.д ) путем выведения сооющений на экран.
- ///
- ///
- /// </summary>
- /// <returns>2Возвращает длину массива введенного пользователем.</returns>
- static int Check()
- {
- Console.Write("Введите число: ");
- int num;
- while (true)
- {
- try
- {
- num = int.Parse(Console.ReadLine());
- if (num <= 0 || num >= 100)
- throw new ArgumentException();
- break;
- }
- catch (FormatException)
- {
- Console.WriteLine("Неправильный формат! Введите нормальное число.");
- }
- catch (ArgumentNullException)
- {
- Console.WriteLine("Введите число. Введите нормальное число.");
- }
- catch (OverflowException)
- {
- Console.WriteLine("Стек переполнен! Введите нормальное число");
- }
- catch (ArgumentException)
- {
- Console.WriteLine($"Границы [1;100 ]. Введите число,входящее в границы!");
- }
- }
- return (num);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement