構造命題公式的真值表
- 1:實驗類型:驗證性
- 2:實驗目的:
- 3:邏輯聯結詞的定義方法
- 4:命題公式的表示方法
- 5:【實驗內容】
1:實驗類型:驗證性
2:實驗目的:
使學生熟練掌握利用計算機語言實現邏輯運算的基本方法。
3:邏輯聯結詞的定義方法
邏輯連接詞“非”
邏輯連接詞“合取”
邏輯連接詞“析取”
邏輯連接詞“蘊涵”
邏輯連接詞“等值”
4:命題公式的表示方法
給出任意一個命題公式,我們可以將它用C程序表示出來,并且能夠計算它在各組真值指派下所應有的真值(或是邏輯運算的結果)。這有多種方法。上面我們已經給出了邏輯連結詞的定義,根據這種定義方法,我們也可以把一個命題公式表示成為條件語句中的條件表達式,這樣我們就可以得到該命題公式的邏輯運算結果了。
5:【實驗內容】
設A、B、C、D為命題變元,編程畫出下列命題公式的真值表:
(1)A^-B(2)CD
(3)(A^-B)→(CD)
代碼實現:
#include <stdio.h>
int main() {int A[] = { 0,1 };int B[] = { 0,1 };int C[] = { 0,1 };int D[] = { 0,1 };int m = 0;int n = 0;int p = 0;printf("A B C D A ∧-B C V D (A∧-B)→(C V D)\n");for (int i = 0; i < 2; i++) {for (int j = 0; j < 2; j++) {for (int k = 0; k < 2; k++) {for (int l = 0; l < 2; l++) {if (A[i] && (!B[j])) {m = 1;//兩者都為1時,結果才為1,否則結果為0}else {m = 0;}if (C[k] || D[l]) {n = 1;//兩者有一個為1時,結果為1,否則為0}else {n = 0;}if (m== 1 && (n== 0)) {p = 0//當前一個條件為1,后一個條件為0時結果為0,其他情況下結果都為1}else {p = 1;}printf("%d %d %d %d %3d %6d %10d\n", A[i], B[j], C[k], D[l], m, n, p);}}}}return 0;
}