Свалилась задача. Помогите, пожалуйста, решить, хотя бы частично.
Условие следующее.
В виде консольного приложения написать программу статистического анализа текста. Программа читает из файла текст и считает для него следующие характеристики: количество символов, слов, предложений, абзацев. Кроме этого, создает словарь слов (различные формы слова – разные слова) с указанием того, сколько раз каждое слово встретилось в тексте, отсортированный в порядке убывания. С помощью программы провести исследование различных текстов (художественного, технического, газетного) примерно одинакового объема на предмет оценки использования словаря слов – объем, слова-лидеры, распределение (приблизительно).
Помогите, пожалуйста. Кому не лень :)
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
"Кому не лень" - улыбнуло.
Вторая часть программы будет достаточно объемной.
Думаю за бесплатно, за это никто не возьмется.
Первую часть.
Количество символов можешь сделать через:
K set of char;
i: integer;
// S - в него загоняешь текст из файла
if S in K then inc(i);
Следом идешь в раздел "Алгоритмы" "Разбиение строки на слова". От сюда пишешь: количество слов(считываешь символы до пробела это и будет одно слово затем "inc"), предложений(считываешь до точки аналогично), абзацев(если первый символ строки = ' ' это и будет абзацем).
Далее:
Берешь уже зделанный ранее алгоритм "поиск слов". Берешь первое слова(запоминаешь) и ищешь похожее, если находишь то увеличиваешь счетчик, затем удаляешь и так со всеми словами.
Не уточнил на чем программа? Если на Delphi, то с сортировкой будет попроще:
Дальше не совсем понятно с литературой...
Вторая часть программы будет достаточно объемной.
Думаю за бесплатно, за это никто не возьмется.
Первую часть.
Количество символов можешь сделать через:
K set of char;
i: integer;
// S - в него загоняешь текст из файла
if S in K then inc(i);
Следом идешь в раздел "Алгоритмы" "Разбиение строки на слова". От сюда пишешь: количество слов(считываешь символы до пробела это и будет одно слово затем "inc"), предложений(считываешь до точки аналогично), абзацев(если первый символ строки = ' ' это и будет абзацем).
Далее:
Берешь уже зделанный ранее алгоритм "поиск слов". Берешь первое слова(запоминаешь) и ищешь похожее, если находишь то увеличиваешь счетчик, затем удаляешь и так со всеми словами.
Не уточнил на чем программа? Если на Delphi, то с сортировкой будет попроще:
Код: Выделить всё
s:=TStringList.Create;
s.LoadFromFile('Text.txt'); // Вместо текстовых файлов подставишь свои переменные. S: text, string
s.Sort;
s.SaveToFile('Text2.txt');
s.Free;
Вот именно что ПОХОЖЕЕ. Учитывая способность русского языка к изменению существительных по падежамBHy4ok писал(а):Далее:
Берешь уже зделанный ранее алгоритм "поиск слов". Берешь первое слова(запоминаешь) и ищешь похожее, если находишь то увеличиваешь счетчик

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
читаем правила! тему не удалил только из уважения к ответившим
