![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
Похожая задача уже решалась здесь
Произвести проверку соблюдения баланса операторов CASE - END, BEGIN - END в тексте программы на языке Паскаль(в моем случае на языке С++). Использовать программный стек. Но когда я пыталась ее сдать, мне сказали, что во-первых надо все таки проверить не баланс скобок, а выполнение Case-end, begin-end, record-end и feof. т.е. задача должна быть на С++, но в файле input(в данной задаче main.cpp) программа должна быть на Паскале. но это несовсем важно, мне сказали передалать вот эту часть программы :
Если кто знает как это сделать, буду признательна если поможете...заранее благодарна... ![]() Это сообщение отредактировал(а) desert_rose - 29.5.2007, 21:04 |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
desert_rose, все понятно, кроме feof - что под этим подразумевается?
Что-то не припомню такого в Паскале... |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 6 Всего: 78 |
Вообще то это СиПиПи, и эта функция означает function End of file -------------------- Ll 2 |
|||
|
||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
zkv, file end of file -- вроде так, я не в курсе есть ли такое в паскале, но наверное должно быть, если преподователь сказал...
или если нет, то тогда просто eof... Это сообщение отредактировал(а) desert_rose - 30.5.2007, 00:01 |
|||
|
||||
zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
я понял речь идет о Паскале про существование Си'шной функции feof() я в курсе, спасибо ![]()
не понятно, что с ней надо делать, как она должна влиять на выполнение программы? PS а расшифровывается скорее file End of file, по аналогии с fprintf(), fscanf() и прочими. Это сообщение отредактировал(а) zkv - 29.5.2007, 23:16 |
||||
|
|||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
не знаю..., в Паскале мало чего знаю, если там такого нет, то можете проигнорировать это. Это сообщение отредактировал(а) desert_rose - 3.6.2007, 23:20 |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
ну вот, работает со всем кроме feof. Обязательное условие для работы - все требуемые ключевые слова должны быть отделены символами пробельной группы. Не люблю со строками возиться
![]()
|
|||
|
||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
zkv, спасибо большое!чтобы я без Вас делала!!!!!!!!
![]() ![]() |
|||
|
||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
м...я наверное уже надоела, но вот тут небольшое замечание появилось, как я сразу не подумала про это...,например, если у нас в комментариях написать одно из этих слов, то баланс уже выполняться не будет...
т.е тут наверное надо идти по массиву посимвольно и построчно, чтоб как только появятся {} как-ни-будь ингорировать это, вот только как это записать...? |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 21 Всего: 92 |
desert_rose, про это уже говорили в предыдущей теме. Если подходить с этой стороны, то задача значительно усложняется, так как эти строки могут встретиться не только в комментариях, но и в строковых константах, всвязи с этим добавляется еще и разбор слеш последовательности '\"'. В настоящий момент программа также не разбирает случаев, когда сразу после служебного слова идут какие - либо разрешенные символы ('{' ';' '.'). Вообщем, решать задачу "по всем правилам" не очень просто и быстро... Возможно, я забыл про еще какие то важные моменты, директивы компилятору, например.
|
|||
|
||||
apook |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Вроде работает
![]()
ну или подобных нелепых ситуациях, конечно не гарантирую стабильность, но несколко небольших файлов проверил без ошибок тестировать нехочу надоело
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||
|
|||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Улучшенный вариант добавлена оьработка комментариев типа (* *)
и можно добавить еще операторов кроме begin record до 10 шт (лишь бы заканчивались end-ом просто не очень знаком с паскалем)
Это сообщение отредактировал(а) apook - 3.6.2007, 03:27 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
apook, большое спасибо
![]() |
|||
|
||||
apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
Боюсь понять будет сложно, я думал тебе просто чтоб здать лабу не вникая, тагда основные моменты прокомментирую( как бы самому там не запутаться
![]()
Это сообщение отредактировал(а) apook - 3.6.2007, 00:17 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
desert_rose |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 18.12.2006 Где: Беллорусия, Минск Репутация: 3 Всего: 3 |
apook, ок, алгоритм понятен, спасибо еще раз
![]()
Это сообщение отредактировал(а) Guedda - 3.6.2007, 16:14 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |