Найти слова , которых нет в словаре - C#
Формулировка задачи:
Всем доброго времени суток, помогите решить следующую задачу: Дан текст и словарь, найти слова, которых нет в словаре.
Решение задачи: «Найти слова , которых нет в словаре»
textual
Листинг программы
using System; namespace MinimumMultiCoreApp { class Program { //Глобальные данные - видны всем потокам static int[] bigArray; //Большой массив static int P; //количество потоков static string[] slovar = {"Привет","как","дела"};//словарь static string text;//текст static int size = GetWordCount(text);//считаем сколько слов в массиве static string[] mins; //массив, в который потоки будут сохранять результат. 0 поток в mins[0], 1- в mins[1] итд // Подсчёт числа слов в строке... static int GetWordCount(String str) { int nCount = 0; bool alpha = false; for (int i = 0; i < str.Length; i++) { if (str[i] == ' ' || str[i] == '\t') { alpha = false; } else { if (alpha == false) { alpha = true; nCount++; } } } return nCount; } //Функция потока //параметр param мы используем как номер потока static void threadFunc(object param) { //Получить параметр и преобразовать в int int nomerPotoka = (int)param; //Размер данных обработки каждым потоком int chunk = size / P; //С какого элемента массива начинать int start = nomerPotoka * chunk; string[] split = text.Split(new Char[] { ' ', ',', '.', ':', '\t' }); string slovo = null; for (var j = 0; j < slovar.Length; j++) { for (var i = 0; i < split.Length; i++) { if (slovar[j] != split[i]) slovo = split[i]; } } //Сохранить свой минимум //mins[nomerPotoka] = slovo; Console.WriteLine(nomerPotoka.ToString() + " нашел минимум = " + slovo.ToString()); } //Главная функция static void Main(string[] args) { //Вводим size - количество элементов Console.WriteLine("Введите текст:"); text = (string)Console.ReadLine(); //Создаем массив из size элементов типа int bigArray = new int[size]; //Вводим P- число потоков Console.WriteLine("Введите число потоков:"); P = int.Parse(Console.ReadLine()); //Запомнили текущее время DateTime time = DateTime.Now; //Создаем массив из P потоков System.Threading.Thread[] threads = new System.Threading.Thread[P]; //Создаем массив из P элементов, куда потоки будут сохранять минимумы //mins = new int[P]; //Создаем и стартуем P потоков for (int i = 0; i < P; i++) { //Создаем поток и сохраняем его в массив. Передаем ему функцию threadFunc, которая и будет выполняться в потоке threads[i] = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(threadFunc)); //Старт потока и передача в параметр его номер threads[i].Start(i); } //Ждем завершения всех потоков for (int i = 0; i < P; i++) { threads[i].Join();//ждать i-й поток } //Время как разница времен до и после подсчета DateTime time1 = DateTime.Now; Console.WriteLine("Время работы: " + time1.Subtract(time).ToString() ); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д