2016-02-14 5 views
-6

У меня есть проект, где я создам таблицу истинности, и пользователь будет вводить предложения и свой оператор, а моя программа выдаст значения истинности, содержащие таблицу истинности.Как создать таблицу истинности в turbo c

У меня есть следующие вопросы:

  1. можно использовать разбор методы с использованием Turbo C?
  2. как следует разобрать это выражение в turbo c? Ex. (p^q) -> r
  3. Как только я проанализировал выражение, как мне нужно генерировать таблицу истинности? Каждая часть выражения должна быть разделена на самые маленькие компоненты и перестроена с левой стороны таблицы вправо. Как бы я оценил что-то подобное?

Может ли кто-нибудь дать мне советы (или ссылки) относительно разбора этих произвольных выражений и в конечном итоге оценить анализируемое выражение?

ответ

0

Позвольте мне ответить на ваши вопросы.

  1. Да. Нет причин, по которым вы не можете.
  2. Вам нужно написать своего рода лексер, чтобы превратить выражение в токены. Затем вы можете использовать shunting yard algorithm, чтобы превратить выражение в то, что вы можете легко оценить.
  3. Используйте результат из (2) и оцените его в маленькой стековой машине. Установите каждую свободную переменную во все возможные комбинации для генерации таблицы истинности.

Разбор произвольных языков вообще невозможен. Хорошее введение в построение компилятора (которое является интересующим вас подполем) находится в Dragon Book (Составители: принципы, методы и инструменты). Это большое поле, хотя я рекомендовал вам составить класс построения компилятора.

Кроме того, подумайте о канаве Turbo C для чего-то нового. Turbo C древний и полный странных причуд.

 Смежные вопросы

  • Нет связанных вопросов^_^