Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2012, 20:28   #1
glushara
 
Регистрация: 22.04.2012
Сообщений: 4
По умолчанию Математическое выражение. Правильность.

Есть задача.
Проверить правильность математического выражения со скобками.

вообще ничего придумать не могу как писать.
ну только что оно не правильное если
1) начинается с закрытой скобки
2) Количество закрытых равно количеству открытых.
3) Сначала открытая скобка потом закрытая.
как реализовать на паскале не знаю

и потом если математическое выражение есть корректным (которое ты ввел) то вычислить его.

вот такое задание.
Были наработки свои но в порыве злости не сохранил.
Большая просьба отзовитесь кто то.
glushara вне форума Ответить с цитированием
Старый 22.04.2012, 22:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

проверить корректность круглых скобок легче лёгкого, а вот проверить корректность математического выражения + вычислить - это ЗНАЧИТЕЛЬНО СЛОЖНЕЕ.

проверка коррекции круглых скобок (исключительно только их!) заключается в следующем.
в цикле читаем выражение посимвольно слева на направо.
если встретили открывающую скобку - увеличиваем счётчик.
если встретили закрывающую скобку - уменьшаем счётчик. Если счётчик стал меньше нуля - выдаём сообщение "закрывающая скобка без открывающей" и выходим с признаком некорректности.
в противном случае окончание цикла - по достижению конца строки.
если счётчик равен нулю - выражение корректно, иначе - ошибка - баланс скобок не соблюдён, есть открывающие без закрывающих, выражение некорректно.

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить математическое выражение в Паскале! arxemond Помощь студентам 6 06.03.2012 00:28
Математическое округление Eldrich JavaScript, Ajax 2 05.03.2011 09:48
Как в Паскале записать математическое выражение vmilyoshin Помощь студентам 2 20.04.2010 07:15
Математическое программирование Rapid Общие вопросы Delphi 2 29.09.2007 20:28
Математическое программирование Roman Помощь студентам 4 16.03.2007 00:31