![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
Здравствуйте.
Мне нужно разобраться с кодом моей программы. Цель программы - производить лексический анализ текста, соответствующего заданному алфавиту и грамматике алгоритмического языка. Этап лексического анализа текста исходной программы выделяется в самостоятельный этап работы транслятора, как с методической целью, так и с целью сокращения времени компиляции программы. Последнее достигается за счёт того, что исходная программа в виде последовательности символов, преобразуется на этапе лексической обработки к некоторому стандартному виду, что облегчает дальнейший анализ. Под лексическим анализом понимают процесс предварительной обработки исходной программы, на котором основные лексические единицы программы - лексемы: ключевые слова, идентификаторы, метки, константы приводятся к единому формату и заменяются условными кодами или ссылками на соответствующие таблицы, а комментарии исключаются из текста программы. Результатом лексического анализа является список лексем-дескрипторов и таблицы. В таблицах хранятся значения выделенных в программе лексем. Программа написана на Delphi. То есть простым языком программа сортирует введенный текст в 4 группы(k1,k2,k3,k4), а также в подгруппы. Если с к1 и к2 все понятно, то не понятно как распознает к3 и к4. Пример результата выполнения программы ![]() ![]() в ней k1-ключевые слова, K2-разделители, k3-идентификаторы, k4-константы(целые числа). Даже на такой простой вопрос,"почему программа не работает, если не поставить точку в конце ввода текста в окне выполнения программы?" я ответить не могу.... Заранее всем спасибо. Последний раз редактировалось marsel989; 26.05.2010 в 01:12. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
пришлю код, чтоб вам легче было
Код:
Последний раз редактировалось Stilet; 26.05.2010 в 11:52. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
так же замечено, что программа иногда работает некорректно.. от чего зависит не понятно..
помогите. доработайте код, ведь прога не сложная... или киньте готовую, у кого есть, и подскажите где найти можно.... нам преподаватель не объясняет ничего, лекции даже не читал, хотя обязан был. я программирование вообще не люблю, поставте себя на мое место, только треть из группы сдало... ребята, хоть что нибудь напишите буду держать тему в топе Последний раз редактировалось Stilet; 26.05.2010 в 10:26. |
![]() |
![]() |
![]() |
#4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Слушай, попытался разобратся - не понял. Можеш какнить по-проще объяснить: Что надо. И во вложении нет формы (файлы dfm и pas).
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
добавил требуемые файлы. программа должна распозновать введенный текст на латинском языке. Например, такой текст "program abv,c:=a+ b;end." и рузультате пишет (k1,1, program) (k3,1, abv) (k2,2, ,) (k3,2, c) (k2,4, :=) (k3,3, a) (k2,9, +) (k3,4, b) (k2,3,
![]() |
![]() |
![]() |
![]() |
#6 | |||
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
Блин. Не понятно.
Цитата:
Цитата:
![]() Цитата:
![]() Если хотите, чтобы вам помогли, потрудитесь изложить задачу четко и подробно с САМОГО НАЧАЛА. Что-то мне подсказывает, что вашу задачу нужно решать иначе (хотя не могу сказать наверника, я же не понял первоначальную задачу). Если это какая-нибудь лабораторная, приведите текст задачи как есть. |
|||
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
1.если ввести вещественное, то она его не распознает, т е не работает, да это и не нужно, хотя я даже не знаю где задается что именно integer
2. в коде программы, видите в первом массиве 21 элемент, во втором-18 3. для к3 и к4 массивов не задано, но понятно что к4-это массив чисел integer Завтра сдавать, а я ни фиг* не знаю Посылаю методичку по лабе, p s не очень понятная но какая есть Последний раз редактировалось marsel989; 26.05.2010 в 19:20. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
http://rapid.ufanet.ru/2241297 - вот методичка по лабе, только написана настолько корявым языком, ничего не понятно
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 17
|
![]()
а почему как комментарий у меня пол программы?? она не нужна что ле вообще?
я примерно понял как работает программа, сначала проверяет относится ли элемент к к1, если нет, значит далее к к2, если тоже нет, то к к4 - константам, если опять нет, то к к3(идентификаторы) - Но тут возникает вопрос, что будет вместо этих вопросов (к3, ??), если массива нет, как она определить на каком месте этот идентификатор находится.... |
![]() |
![]() |
![]() |
#10 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]()
А вы уже работаете с классами?
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как работает программа и что делает | dragun4ik | Помощь студентам | 0 | 23.05.2010 15:51 |
Не могу разобраться как работает программа(сложение дробей) | Superlotles | Общие вопросы C/C++ | 1 | 15.05.2010 16:05 |
при работе с Excel не работает кусок кода | Tirendus | Общие вопросы Delphi | 4 | 23.07.2009 13:13 |
Разборка кода | Safary | Помощь студентам | 8 | 28.11.2008 09:18 |
Оптимизация кода программы | insi | Фриланс | 2 | 17.05.2008 18:30 |