С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 05.04.2014
Сообщений: 78

Найти слова , которых нет в словаре

15.02.2016, 19:49. Показов 1840. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, помогите решить следующую задачу: Дан текст и словарь, найти слова, которых нет в словаре.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2016, 19:49
Ответы с готовыми решениями:

Найти слова, которых нет в словаре. Используя потоки
Дан словарь и текст, найти слова, которых нет в словаре. Используя потоки. количество потоков задается в ручную. string slovar = {...

Вывести те слова массива, которых нет в словаре
Пользователем вводится словарь (в виде слов в строке, разделенных пробелом).Затем пользователем вводится текст(массив строк,каждый...

Найти слова, буквы которых расположены по алфавиту и слова, в которых нет повторяющихся букв
Разработать алгоритм и программу. Вводится текст из заглавных и строчных латинских букв,пробелов.Количество символов не должно превышать...

5
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
15.02.2016, 20:34
Цитата Сообщение от egor_22rus Посмотреть сообщение
помогите решить
Ну давай код, что не получается подправим)
А так же пример текста и пример словаря
0
2 / 2 / 1
Регистрация: 05.04.2014
Сообщений: 78
15.02.2016, 20:43  [ТС]
Словарь задаем в коде, текст вводим в консоли в виде строки.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static string[] slovar = {"Привет","как","дела"};//словарь
        static string text;//текст
string[] split = text.Split(new Char[] { ' ', ',', '.', ':', '\t' });
            string slovo;
            for (var j = 0; j < slovar.Length; j++)
            {
                for (var i = 0; i < split.Length; i++) 
                {
                    if (slovar[j] != split[i])
                        slovo = split[i];
                }
            }
 
            Console.WriteLine(slovo.ToString());
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
15.02.2016, 20:51
C#
1
2
3
4
5
string[] slovar = {"Привет","как","дела"};//словарь
string text = "Привет, как твои дела, дружище";
string[] split = text.Split(new Char[] { ' ', ',', '.', ':', '\t' }, StringSplitOptions.RemoveEmptyEntries);
string[] words = split.Except(slovar).ToArray();
Console.WriteLine(string.Join(" ", words));
1
115 / 92 / 66
Регистрация: 27.04.2014
Сообщений: 307
15.02.2016, 20:52
Вот так пробуй:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            string[] slovar = { "буря", "небо", "крутя", "вихри","заверь","завоет" };
            string expression = "Буря мглою небо кроет,вихри снежные крутя".ToLower();
            string[] words = expression.Split(new[] { ' ', ',','.' });
            bool contain = true;
            for (int i = 0; i < words.Length; i++)
            {
                for (int j = 0; j < slovar.Length; j++)
                {
                    if (words[i] == slovar[j])
                    {
                        contain = true;
                        break;
                    }
                    else contain = false;
                }
                if (contain == false) Console.WriteLine("Слова '{0}' в словаре нет",words[i]);
            }
            Console.WriteLine();
            Console.ReadLine();
Если угодно, можешь заменить
C#
1
string expression = "Буря мглою небо кроет,вихри снежные крутя".ToLower();
На
C#
1
string expression = Console.ReadLine.ToLower();
1
2 / 2 / 1
Регистрация: 05.04.2014
Сообщений: 78
15.02.2016, 20:53  [ТС]
Код программы, решение данной задачи должно быть реализовано через потоки
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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();
 
        }
 
 
    }
}
В результате компиляции выдает следующую ошибку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2016, 20:53
Помогаю со студенческими работами здесь

Найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове
Для заданного длинного слова найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове. ...

Найти либо те слова в тексте, в которых есть все буквы определенного слова, либо те, в которых нет ни одной
1 - текстовое поле, куда пользователь вводит произвольный текст. 2 - текстовое поле, куда пользователь вводит одно слово. 3 - Вывод в...

Для заданного длинного слова найти в словаре все слова
Для заданного длинного слова найти в словаре все слова, в которых использованы только буквы, которые присутствуют в заданном слове ...

Найти слова в которых нет повторяющихся букв
задание дана символьная строка. Слово- последовательность символов между пробелами , не содержащая пробелы внутри себя. Составить...

В строке найти чётные слова, в которых нет удвоенной буквы "и" и вывести эти слова в новую строку
Задать произвольную строку символов. Группу символов, разделенную с одной или с обеих сторон одним или несколькими пробелами и не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru