Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace CW0
- {
- class Program
- {
- static Random rnd = new Random();
- /// <summary>
- /// Проверка числа на правильность ввода.
- /// </summary>
- /// <param name="num">Число для проверки</param>
- static bool CheckNumber(out int num)
- {
- if (!(int.TryParse(Console.ReadLine(), out num) && num > 0))
- {
- return false;
- }
- return true;
- }
- /// <summary>
- /// Создание массива из случайных строчных латинских букв
- /// </summary>
- /// <param name="N">Количество букв в строке</param>
- static char[] CreateArray(int N)
- {
- char[] chArr = new char[N];
- for (int i = 0; i < chArr.Length; i++)
- {
- chArr[i] = (char)rnd.Next('a', 'z' + 1);
- }
- return chArr;
- }
- /// <summary>
- /// Метод для нахождения чаще встречаемого символа.
- /// </summary>
- /// <param name="str">Строка для проверки</param>
- static void MostCommon(string str)
- {
- int[] numberOfRepeats = new int[str.Length];
- int k = 0;
- for (int i = 0; i < str.Length; i++)
- {
- for (int j = 0; j < str.Length; j++)
- {
- if ((int)str[j] == (int)str[i])
- {
- k++;
- }
- }
- numberOfRepeats[i] = k;
- k = 0;
- }
- int max = numberOfRepeats.Max();
- Console.WriteLine("Чаще встречается символ: {0} раз(а)", max);
- }
- /// <summary>
- /// Метод для создания нового массива, содержащего символы, кратные числу К
- /// </summary>
- /// <param name="str">Строка для проверки</param>
- static void NOK(string str)
- {
- while (true)
- {
- Console.WriteLine("Введите число для нахождения кодов символов кратные ему:");
- int k;
- char[] chArr1 = new char[0];
- if (!CheckNumber(out k))
- {
- Console.WriteLine("Error!");
- continue;
- }
- for (int i = 0; i < str.Length; i++)
- {
- if (((int)str[i] - 97) % k == 0)
- {
- Array.Resize(ref chArr1, chArr1.Length + 1);
- chArr1[chArr1.Length - 1] = str[i];
- }
- }
- string result = new string(chArr1);
- Console.WriteLine("Массив с кодами символов кратные {1}: {0}", result, k);
- break;
- }
- }
- /// <summary>
- /// Метод для нахождения количества элементов массива в заданном интервале
- /// </summary>
- /// <param name="str">Строка для проверки</param>
- /// <param name="ch1">Первый интервал</param>
- /// <param name="ch2">Второй интервал</param>
- static void Interval(string str, char ch1, char ch2)
- {
- int code_ch1 = (int)ch1;
- int code_ch2 = (int)ch2;
- int k = 0;
- for (int i = 0; i < str.Length; i++)
- {
- if (((int)str[i] >= code_ch1) && ((int)str[i] <= code_ch2))
- {
- k++;
- }
- }
- Console.WriteLine("Количество элементов входящих в диапазон [{0};{1}]: {2}", ch1, ch2, k);
- }
- /// <summary>
- /// Метод для нахождения частоты встречаемости каждого элемента массива
- /// </summary>
- /// <param name="str">Строка для проверки</param>
- static void Frequency(string str)
- {
- double[] freq = new double[str.Length];
- int k = 0;
- Console.WriteLine("Частота встречаемости каждого символа:");
- for (int i = 0; i < str.Length; i++)
- {
- for (int j = 0; j < str.Length; j++)
- {
- if ((int)str[j] == (int)str[i])
- {
- k++;
- }
- }
- freq[i] = (double)k / str.Length;
- Console.WriteLine("{0}: {1:f3}", str[i], freq[i]);
- k = 0;
- }
- }
- static void Main(string[] args)
- {
- Console.WriteLine("Введите количество символов в строке:");
- int N;
- //Проверка ввода данных
- if (!(CheckNumber(out N)))
- {
- Console.WriteLine("Error!");
- return;
- }
- char[] chArr = CreateArray(N);
- string str = new string(chArr);
- Console.Write("Новая строка: ");
- Console.WriteLine(chArr);
- MostCommon(str);
- NOK(str);
- char ch1, ch2;
- Console.WriteLine("Введите два символа для определения диапазона");
- if (!(char.TryParse(Console.ReadLine(), out ch1) && char.TryParse(Console.ReadLine(), out ch2)
- && (int)ch1 < (int)ch2))
- {
- Console.WriteLine("Error");
- return;
- }
- Interval(str, ch1, ch2);
- Frequency(str);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement