2016-02-14 66 views
-6

我有一個項目,我將創建一個真值表,用戶將輸入命題及其運算符,我的程序將輸出提供真值表的真值。我如何在turbo c中創建真值表

我有以下問題:

  1. 我可以用解析使用Turbo C的技術?
  2. 我該如何解析turbo c中的這個表達式?防爆。 (p^q) - > r
  3. 一旦我解析了表達式,我應該如何去生成真值表?表達式的每個部分都需要分成最小的組成部分,並從表的左側重新構建到右側。我將如何評估這樣的事情?

任何人都可以提供有關解析這些任意表達式並最終評估解析表達式的提示(或鏈接)嗎?

回答

0

讓我試着回答你的問題。

  1. 是的。沒有理由爲什麼你不能。
  2. 您需要編寫某種詞法分析器來將表達式轉換爲令牌。然後,您可以使用shunting yard algorithm將表達式轉換爲您可以輕鬆評估的內容。
  3. 使用(2)的結果並在一個小堆棧機器中評估它。將每個自由變量設置爲所有可能的組合以生成真值表。

解析任意語言通常是不可能的。編譯器構建(這是您感興趣的子領域)的一個很好的介紹可在Dragon Book(編譯器:原理,技術和工具)中找到。儘管這是一個很大的領域,但我建議您採用編譯器構建類。

此外,考慮最近拋棄Turbo C。渦輪C是古老的,充滿怪異的怪癖。