Найти слова , которых нет в словаре - 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();
 
        }
 
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы