![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
![]()
Подскажите алгоритм как занести слова из строки в массив. Т.е. каждое слово в отдельный элемент массива. Слова у меня отделены пробелами. Я иду по строке пока не встречу пробел, каждый символ строки записывая в новую строку, как тока пробел появился, новая строка готова - она содержит первое слово и мы заносим эту строку в первый элемент массива и очищаем эту строку. Но вот дальше этот алгоритм не работает, потому что если его повторить, он начинает с начала строки и опять сохраняет первое слово, а мне после первого прохода надо начинать с символа, который после первого пробела. Как сделать?
|
![]() |
![]() |
![]() |
#32 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
![]()
Готово:
Код:
|
![]() |
![]() |
![]() |
#33 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Нужно было ввести строку и обработать ее тем же алгоритмом, которым Вы будете обрабатывать строку, введенную пользователем. И еще раз напомню о своей точке зрения: в Вашей задаче реальный парсинг не нужен - достаточно лишь немного преобразовать строку, после чего сравнивать ее побайтно. |
|
![]() |
![]() |
![]() |
#34 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Я не понял - Вы хотите рассматривать только одну строку? А если в if будет другое корректное выражение? Анализ не нужен будет? Если для одной строки, то все гораздо проще - нужно ее подготовить как писал ранее, но нет смысла загонять в массив. Просто сравните с образцом и все дела.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#35 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() |
![]() |
![]() |
![]() |
#36 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Цитата:
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
|
![]() |
![]() |
![]() |
#37 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
![]()
Работу не зачли, всё совсем не так....
Нужно проверить не только эту строку, а синтаксис, т.е. if (CEdit1.Text='лолрлро') - это не должно быть ошибкой, CEdit2.Text - тоже и т.д. Тут надо как-то составить правила, что после if должно иди условие, неважно какое, главное что бы оно было написано синтаксически правильно, и так для всего кода. Как это сделать? Приведите хоть часть, как начать. |
![]() |
![]() |
![]() |
#38 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#39 |
Пользователь
Регистрация: 09.02.2009
Сообщений: 35
|
![]()
Основная задача синтаксического анализатора – проверка правиль*ности грамматического
построения предложений исходного текста программы. Все конструкции современных языков программирования имеют четкие и однозначные грамматические правила (синтаксис), которые должны соблюдаться при написании программы. Для выяв*ления возможных ошибок и контроля правильности построения пред*ложений языка в исходном тексте необходимо иметь: 1) предложение языка, представленное в виде таблицы стандартных символов; 2)грамматику языка, расположенную в памяти (в некоторых методах грамматического разбора это требование может отсутствовать); 3) алгоритм грамматического разбора, реализованный в виде син*таксического анализатора (английский термин – PARSER, которым мы будем пользоваться для краткости). Т.е. главной задачей я так понимаю составить грамматические правила и потом использовать для проверки. Тогда всё будет верно. Но как записать правила? Я так понимаю правило, это что то типа, если увидели if, после него должно следовать условие, условие должно быть заключено в скобки, в условии должно быть 2 идентификатора и между ними знак сравнения, после скобки должно следовать and/or и так далее. Т.е содержимое нам неважно, главное верный синтаксис, где надо там зарезервированное слово где надо идентификатор и т.д. Как такие правила составить? |
![]() |
![]() |
![]() |
#40 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
предположительно, нужно копать в сторону:
результаты поиска в Гугл: построение синтаксического анализатора грамматики языка возможно, что в вашем случае, не требуется полномасштабное решение. Хотя, я бы акцентировал внимание на то, чтобы найти методическое пособие именно к данной работе, желательно вашего учебного заведения/авторства ваших преподавателей, на крайний случай, чужую ПРАВИЛЬНУЮ работу (можно прошлых лет) и разобрался в том, что именно от вас требуется. пока, с ваших слов (я про те посты, где вы писали про if (CEdit1.Text='лолрлро') ) - ничего непонятно - что считать правильной конструкцией, что - нет... |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
синтаксический анализатор(LL) | Legato | Общие вопросы Delphi | 2 | 25.12.2011 18:29 |
Синтаксический анализатор | Lisёноk | Помощь студентам | 2 | 12.12.2011 09:51 |
Синтаксический анализатор | Jeka57 | Помощь студентам | 1 | 05.06.2011 22:47 |
Синтаксический анализатор | Ita | Фриланс | 0 | 29.03.2011 01:37 |
Синтаксический анализатор | Douglas | Помощь студентам | 0 | 28.12.2010 18:01 |