|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.12.2010, 10:11 | #1 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 10
|
как изменить эту программу чтобы она заработала?
помогите с программой, как сделать так чтобы эта программа заработала в microsoft visual studio 2008? что нужно в ней изменить и как?
//для элемента var раздела языка программирования Паскаль: //1 построить грамматику //2 преобразовать грамматиу к LL(1)-виду, если она таковой не является. для этого нужно использовать введение дополнительных нетерминальных символов, //левой факторизации //3 пронумеровать правила грамматики //4 для правил, имеющих совпадающие левые части построить множества стартовых символов или множества символов-последователей (для правил с пустым символом в правой части). убедиться, что множества для одинаковых нетерминалов в левой части правил имеют непересекающиеся правые части //5 разработать программу синтаксического анализа на основе построенной грамматики использованием нисходящего метода рекурсивного спуска. //использовать рекурсивные вызовы функций //6 для каждого нетерминала создать отдельную функцию //Грамматика: //G(T,N,P,DECL), //где Т-множество терминальных символов // N-множество нетерминальных символов // P- множество правил грамматики // DECL-целевой символ грамматики // T={'a','b','c',...,'z',',',':',';', var,real,integer,byte} // N={DECL,SPISOK,NAME,DOP,TIP} // P: МножестваFIRST Множества FOLLOW // 1) DECL -> var SPISOK : TIP; // 2)SPISOK -> NAME DOP // 3)DOP ->, SPISOK | {,} // 4)SL (это лямбда) {:} // 5)TIP -> real | {real} // integer | {integer} // byte {byte} // 6)NAME -> a | b| ... |z Код:
Последний раз редактировалось Stilet; 12.12.2010 в 12:17. |
12.12.2010, 12:17 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А какие ошибки она выдает при компиляции?
I'm learning to live...
|
12.12.2010, 20:21 | #3 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 10
|
ошибки при запуске программы:
'cpo3.exe':loaded 'C:\windows\system32\msctf.dll' 'cpo3.exe':loaded 'C:\programs files\scansoft\omnipagese4.0\ophook se4.dll' 'cpo3.exe':loaded 'C:\windows\system32\version.dll' 'cpo3.exe':loaded 'C:\windows\system32\ole32.dll' 'cpo3.exe':loaded 'C:\windows\system32\oleaut32.dll' через пару минут: 'cpo3.exe': Loaded 'C:\WINDOWS\system32\ole32.dll' 'cpo3.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll' 'cpo3.exe': Unloaded 'C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2010\mzvkbd3.dll' The thread 'Win32 Thread' (0x53c) has exited with code 0 (0x0). 'cpo3.exe': Unloaded 'C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 2010\kloehk.dll' The thread 'Win32 Thread' (0x954) has exited with code 0 (0x0). на протяжении всего времени висит табличка: microsoft visual c++ debug library debug assertion failed program:'cpo3.exe' file: f:\\dd\vctools\crt_bld\self_x86\crt \src\fscanf.c line:52 expression: (stream !=NULL) for information on how your program can cause an assertion failure, see the visual c++ documentation on asserts |
12.12.2010, 22:02 | #4 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Анастасия91
у вас ассерт fin=fopen("all_token.dat","r"); файл существует? если нет, fopen его не создаст, ибо вы его открываете с режимом только для чтения. причем, дальше не проверяете, корректно ли открылся файл. и во время вызова fscanf упадете по алгоритму ничего не скажу. по коду - он ужасен чуть более, чем полностью
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
13.12.2010, 07:39 | #5 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 10
|
как организовать корректное открытие файла (файл уже был создан, all_token.dat) и чтобы был вывод результата ввиде грамматик на экран и сохранение в другой файл тех же грамматик, которые использовала программа в свой работе
|
13.12.2010, 07:39 | #6 |
Пользователь
Регистрация: 11.12.2010
Сообщений: 10
|
помогите пожалуйста
|
13.12.2010, 08:05 | #7 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Для этого надо дискриптор файла проверять! Допустим
Вот вы открываете файл fin=fopen("all_token.dat","r"); То в случае удачи fopen вернёт указатель(дискриптор) на файл! Иначе вернёт NULL Отсюда проверка такая Код:
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 Последний раз редактировалось Hacker19_90; 13.12.2010 в 08:20. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ПЕРЕДЕЛАЙТЕ ПРОГРАММУ ТАК, ЧТОБЫ ОНА НИКОГДА НЕ ВЫВОДИЛА БОЛЕЕ 10 ЧИСЕЛ В ОДНОЙ СТРОКЕ | D_bl_M | Общие вопросы C/C++ | 6 | 05.06.2010 06:54 |
Какую программу можно написать на делфи чтобы она пользовалась большим спросом | Xander | Свободное общение | 8 | 03.07.2008 16:11 |
Как сделать программу, чтобы она запускалась везде? | grenles | Общие вопросы C/C++ | 3 | 11.06.2008 21:10 |
Возможно создать программу, чтобы она взламывала соеденение по мобильному телефону | niva622 | Свободное общение | 3 | 01.05.2007 09:22 |