|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2012, 20:28 | #1 |
Регистрация: 22.04.2012
Сообщений: 4
|
Математическое выражение. Правильность.
Есть задача.
Проверить правильность математического выражения со скобками. вообще ничего придумать не могу как писать. ну только что оно не правильное если 1) начинается с закрытой скобки 2) Количество закрытых равно количеству открытых. 3) Сначала открытая скобка потом закрытая. как реализовать на паскале не знаю и потом если математическое выражение есть корректным (которое ты ввел) то вычислить его. вот такое задание. Были наработки свои но в порыве злости не сохранил. Большая просьба отзовитесь кто то. |
22.04.2012, 22:56 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
проверить корректность круглых скобок легче лёгкого, а вот проверить корректность математического выражения + вычислить - это ЗНАЧИТЕЛЬНО СЛОЖНЕЕ.
проверка коррекции круглых скобок (исключительно только их!) заключается в следующем. в цикле читаем выражение посимвольно слева на направо. если встретили открывающую скобку - увеличиваем счётчик. если встретили закрывающую скобку - уменьшаем счётчик. Если счётчик стал меньше нуля - выдаём сообщение "закрывающая скобка без открывающей" и выходим с признаком некорректности. в противном случае окончание цикла - по достижению конца строки. если счётчик равен нулю - выражение корректно, иначе - ошибка - баланс скобок не соблюдён, есть открывающие без закрывающих, выражение некорректно. что же касается вычисления выражения, то рекоменду взять исходники готового парсера. например, я выкладывал на форуме свой исходник (поищите на форуме по слову EXPRUS) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вычислить математическое выражение в Паскале! | 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 |