Да се състави програма (C++), чрез която се доказва закона за преместване за булевата функция (A ^ ( B v A)) = A чрез проверка на всеки терм от таблицата за истинност.
Използвани означения:
! - отрицание, логическа функция Not
v - дизюнкция, логическа функция Or
^ - конюнкция, логическа функция And
Решение
#include <iostream>
using namespace std;
bool zakon_pr(bool mas[][2])
{ int i;
bool a1,a2,f1=true,f2;
for (i=0;i<4;i++)
{a1=mas[i][0];a2=mas[i][1];
if ((a1 && (a2 || a1)) ==a1)
{cout<<"Wqrno za: "<<a1<<" "<<a2<<endl;
f2=true;
}
else
{cout<<"Newqrno za: "<<a1<<" "<<a2<<endl;
f2=false;
}
f1=f1 && f2;
}
return f1;
}
int main()
{ bool mas[4][2] = {{0,0},{0,1},{1,0},{1,1}};
bool f;
//predwaritelno se wywevdat wsichi kombinacii ot stojnosti na 2-te bulewi promenliwi
// zakon za poglyshane (A ^ (B v A) = A
cout<<"Zakon za poglyshane (A ^ (B v A) = A \n";
f=zakon_pr(mas);
if (f) cout<<"Zakonyt se izpylnqwa za wseki otdelen term.\n";
else cout<<"Pone edin term ot tablicata za istinnost e sys stojnost 0.\n";
system("pause");
return 0;
}