Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
stark91
1 / 1 / 0
Регистрация: 07.05.2010
Сообщений: 55
#1

Анализ текста - C++

24.05.2011, 19:15. Просмотров 1582. Ответов 9
Метки нет (Все метки)

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

пример:

Input:
Test 2.2 is a number.

Output:
Test - word
2.2 - number
is - word
a - word
number - word

Первое с чего начал это естественно гугл. Гуглил по запросу "лексический анализатор",но ничего про таблицы не смог нагуглить.
Как я понял в таблице должно быть описание типа данных: word, number.
Есть какие-нибудь идеи?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 19:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анализ текста (C++):

Анализ текста - C++
Всем привет. Есть программа, которая шифрует файлы. Я хотел бы перебором всех ключей (ключевое пространство небольшое) вычислить открытый...

Морфологический анализ текста - C++
Здравствуйте, нужна помощь в написании программы: Создать программу проводящую морфологический анализ текста (а именно Личных местоимений),...

Символьный анализ текста - C++
2. Дана строка. Выполните символьный анализ текста. Ниже представлен рекомендуемый вид диалога во время работы программы. Данные, вводимые...

Частотный анализ текста - C++
Помогите решить задачу! Дана строка, содержащая текст, набранный заглавными русскими буквами. Провести частотный анализ текста, т.е....

Частотный анализ текста - C++
Вообщем задача, Есть текст в файле, необходимо определить, какие символы и сколько раз встречаются в тексте. Упорядочить их в порядке...

Анализ тональности текста - C++
Нужно написать программу анализа тональности текста. Решил воспользоваться самым примитивным способом, подсчет "положительных" и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.05.2011, 20:22 #2
первое, что пришло в голову - выделять слова из строки, а потом проверять на характер символов этого слова. Если в нем встречаются только цифры или цифры и ".", то это число. Если только буквы без цифр - слова... Как - то так...
В данной задаче, я пользовался бы множеством ( set )
0
stark91
1 / 1 / 0
Регистрация: 07.05.2010
Сообщений: 55
24.05.2011, 21:39  [ТС] #3
А таблицы тогда причем? Нужно делать задание используя таблицы! Но инфы про них я не нашел.
0
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 21:41 #4
Ну дак вы выделяете из текста лексемы, определяя , что вам встретилось, число или слово, и помещаете это в таблицу, где у вас каждой лексеме будет сопоставляться её тип.
0
stark91
1 / 1 / 0
Регистрация: 07.05.2010
Сообщений: 55
24.05.2011, 22:10  [ТС] #5
Так получается что таблица нужна только для хранения лексем? Если выходные данные должны быть записаны в файл, то тогда смысл ее размещения в этой таблице?
Или я что-то не так понял?
0
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 22:19 #6
Я вижу только такое применение таблицы в данном случае. Представьте, что после того, как вы разобрали текст, вы еще что-то хотите поделать с этими словами, числами, это будет намного удобнее делать, если будет таблица, в таком случае смысл появится, а в данной задаче, видимо, требуется только лишь показать, что вы понимаете, как это делается.
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.05.2011, 23:08 #7
А можно просто использовать класс string (STL) и решить любую задачу без использования массивов - экономичней!
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.05.2011, 23:31 #8
Mиxaил, Класс string - это просто обертка строки Си-стиля(масива символов), так что строка - это всегда, хоть иногда и не явно, масив.
0
stark91
1 / 1 / 0
Регистрация: 07.05.2010
Сообщений: 55
24.05.2011, 23:42  [ТС] #9
Я извиняюсь, недописал задание.

Написать программу, использующую механизм управления при помощи таблиц (управление осуществляется данными!). Необходимо во входном потоке данных выделить заранее предопределенные лексемы (набор лексем для выделения получить у преподавателя). Входные данные: текстовый файл, содержащий фрагмент текста. Выходные данные: текстовый файл с распознанными лексемами.
В исходном файле лексемы отделяются друг от друга разделителями.
Ограничения, накладываемые на реализацию: программа может запоминать только текущее состояние и последний введенный символ. Не должны использоваться никакие дополнительные массивы для хранения введенных данных.

Тут указано что таблица должна как то управлять данными.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.05.2011, 08:53 #10
Цитата Сообщение от stark91
Гуглил по запросу "лексический анализатор",но ничего про таблицы не смог нагуглить.
wiki. конечный автомат
там есть таблица переходов
символ -> состояние
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 08:53
Привет! Вот еще темы с ответами:

Лексический и синтаксический анализ текста - C++
Доброго времени суток, нужно написать курсач по программированию - реализовать алгоритм лексического анализа предложений -...

Лексический и синтаксический анализ текста - C++
Доброго времени суток, товарищи.Сейчас учусь в универе и дали задание курсовой работы на с++.Я читаю его и понятия не имею что нужно...

Частотный анализ текста (символьный) - C++
Частотный анализ текста (символьный). (Подсчитывается относительная частота встречаемости каждого символа в тексте.) Текст вводится из...

Частотный анализ текста (пословный) - C++
24. Частотный анализ текста (пословный). (Подсчитывается относительная частота встречаемости каждого слова в тексте; границами слов...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.05.2011, 08:53
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru