Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 4
Регистрация: 20.03.2014
Сообщений: 221
1

Составить предметный указатель содержащий встречающиеся в тексте слова

09.12.2016, 19:09. Показов 1316. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
осуществить обработку текстового файла, содержащего некоторый
многостраничный текст. Будем считать, что одна страница текста состоит из 60 строк. Результ
обработки – текстовый файл, содержащий предметный указатель встречающихся в тексте
слов. В предметном указателе перечисляются слова в алфавитном порядке. Для каждого
слова указывается количество его вхождений в текст иномера страниц, на которых встречатся
это слово. При формировании предметного указателя, слова, начинающиеся с разных букв
алфавита разделяются на группы:

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
 class Program
    {
        static string Reader(StreamReader streamReader)
        {
            string data;
            using (streamReader)
            {
                data = streamReader.ReadToEnd();
            }
            return data;
        }
 
        static void Writer(SortedDictionary<string, List<int>> dictionary, StreamWriter streamWriter)
        {
            ICollection<string> keys = dictionary.Keys;
            using (streamWriter)
            {
                foreach (string word in keys)
                {
                    streamWriter.Write(word + ": " + dictionary[word].Count() + ": ");
                    var temp = dictionary[word].Distinct().ToArray();
                    for (int i = 0; i < temp.Length; i++)
                    {
                        streamWriter.Write(temp[i] + "  ");
                    }
                    streamWriter.WriteLine();
                }
            }
        }
 
        static string[] ToWords(string data)
        {
            return data.Split(new char[] { '.', ';', '\'', '/', ':', ';', '!', '?', ' ', '\r', '\n' });
        }
 
        static SortedDictionary<string, List<int>> Concordance(string[] dataWords)
        {
            var dictionary = new SortedDictionary<string, List<int>>();
            int countPages = 1, countString = 1;
 
            for (int i = 0; i < dataWords.Length; i++)
            {
                dataWords[i] = dataWords[i].ToLower();
                if (dataWords[i].Length == 0)
                {
                    if (countString == 60) { countString = 0; countPages++; }
                    countString++;
                }
                else
                {
                    if (!dictionary.ContainsKey(dataWords[i]))
                    {
                        dictionary.Add(dataWords[i], new List<int>());
                        dictionary[dataWords[i]].Add(countPages);
                    }
                    else
                    {
                        dictionary[dataWords[i]].Add(countPages);
                    }
                }
            }
            return dictionary;
        }
 
        static void Main(string[] args)
        {
            string fileName = @"input.txt";
            StreamReader reader = new StreamReader(fileName);
            string data = Reader(reader);
 
            string[] dataWords = ToWords(data);
 
            var dictionary = Concordance(dataWords);
 
            for (int i = 0; i < dataWords.Length; i++)
            {
                Console.WriteLine(dataWords[i]);
            }
 
            StreamWriter streamWriter = new StreamWriter(@"info.txt");
            Writer(dictionary, streamWriter);
            Console.ReadKey();
        }
    }
Объясните что происходит в этих двух методах:
C#
1
static void Writer(SortedDictionary<string, List<int>> dictionary, StreamWriter streamWriter)
,
C#
1
 static SortedDictionary<string, List<int>> Concordance(string[] dataWords)
Добавлено через 24 секунды
Если можно, то подробнее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2016, 19:09
Ответы с готовыми решениями:

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

Предметный указатель и исключение FileNotFoundException
: Описать класс «предметный указатель». Каждый компонент указателя содержит слово и номера...

Описать класс «Предметный указатель». Каждый компонент указателя содержит ...
Описать класс «Предметный указатель». Каждый компонент указателя содержит: - слово и номера...

Описать класс "предметный указатель". Ошибка с полем
Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля,...

0
09.12.2016, 19:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2016, 19:09
Помогаю со студенческими работами здесь

Описать класс "предметный указатель"
Общие данные: Каждый разрабатываемый класс должен, как правило, содержать следующие элементы:...

Вывести слова, встречающиеся в тексте по одному разу
C++ Вывести слова, встречающиеся в тексте по одному разу.... подскажите мысль...или все чем можете...

Вывести слова, встречающиеся в тексте по одному разу
3. Дан текст. Вывести слова, встречающиеся в тексте по одному разу.( Дан текст. Вывести символы,...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru