對給出的任意一個命題公式(不超過四個命題變元),使學生會用C語言的程式編程表示出來,并且能夠計算它在各組真值指派下所應有的真值,畫出其真值表,
#include<iostream> using namespace std; struct { int p[4] = {1,1,0,0}; int q[4] = {1,0,1,0}; }m; int main() { cout << " p:"; for(int i = 0;i < 4;i++) cout << m.p[i] << " "; cout << endl; cout << " q:"; for(int i = 0;i < 4;i++) cout << m.q[i] << " "; cout << endl; //非p cout << " 非p:"; int copyp[4]; int k = 0; int feip[k]; for(int i = 0;i < 4;i++) copyp[i] = m.p[i]; for(int i = 0;i < 4;i++) { if(copyp[i] == 0) copyp[i] = 1; else copyp[i] = 0; } for(int i = 0;i < 4;i++) { feip[i] = copyp[i]; cout << copyp[i] << " "; } cout << endl; //p交q cout << "p合取q:"; for(int i = 0;i < 4;i++) { if(m.p[i] == 0 || m.q[i] == 0) cout << 0 << " "; else cout << 1 << " "; } cout << endl; //p并q cout << "p析取q:"; for(int i = 0;i < 4;i++) { if(m.p[i] == 1 || m.q[i] == 1) cout << 1 << " "; else cout << 0 << " "; } cout << endl; //p蘊含q cout << "p蘊含q:"; for(int i = 0;i < 4;i++) { if(feip[i] == 1 || m.q[i] == 1) cout << 1 << " "; else cout << 0 << " "; } cout << endl; //p當且僅當q cout << "p等價q:"; for(int i = 0;i < 4;i++) { if((m.p[i] == 1 && m.q[i] == 1) || (m.p[i] == 0 && m.q[i] == 0)) cout << 1 << " "; else cout << 0 << " "; } cout << endl; return 0; }
運行結果:
以下代碼為可輸入的代碼,用布林值實作
#include<iostream> using namespace std; void function(bool x,bool y) { bool m = x&y; bool n = x|y; bool a,b,c; if(x == 1 && y == 0) a = 0; else a = 1; if(y == 1 && x == 0) b = 0; else b = 1; if(x == y) c = 1; else c = 0; cout << "p q ﹁p ﹁q p∩q p∪q p→q q→p p←→p p⊕q" << endl; cout << x << " " << y << " " << !x << " " << !y << " "; cout << m << " " << n << " "; cout << a << " " << b << " " << c << " " << !c << endl; } int main() { bool p,q; int n; cout << "請輸入需要測驗幾組資料:"; cin >> n; while(n--) { cout << "請輸入命題p和命題q的真值:"; cin >> p >> q; function(p,q); } return 0; }
運行結果:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/89823.html
標籤:C++
