int main() { std::string str; getline(std::cin,str);
const int n = 5; std::string c[n] = { "=", "==", "!=", "a +=", "a -=" }; std::string psl[n] = { ": =", "=", "#", "a = a +", "a = a -" };
for (unsigned int i = n-1; i > 0; i--){ int p = str.find(c[i]); while (p > 0) { str.replace(p, c[i].size(), psl[i]); p = str.find(c[i]); } } std::cout << str; return 0; }
1) F=Av(¬A&B) По закону дистрибутивности раскроем скобки (Av¬A)&(AvB) Av¬A = 1, значит остаётся AvB
2) F =A&(¬AvB) По тому же закону раскрываем скобки (A&¬A)v(A&B) A&¬A = 0, значит остаётся A&B
3. (AvB)&(¬BvA)&(¬CvB) По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид A&(¬CvB) Можно раскрыть скобки, получим A&¬C v A&B
4) F =(1v(AvB))v((AC)&1) Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1 Получаем выражение 1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1 ответ 1
#include <string>
int main()
{
std::string str;
getline(std::cin,str);
const int n = 5;
std::string c[n] = { "=", "==", "!=", "a +=", "a -=" };
std::string psl[n] = { ": =", "=", "#", "a = a +", "a = a -" };
for (unsigned int i = n-1; i > 0; i--){
int p = str.find(c[i]);
while (p > 0)
{
str.replace(p, c[i].size(), psl[i]);
p = str.find(c[i]);
}
}
std::cout << str;
return 0;
}
По закону дистрибутивности раскроем скобки
(Av¬A)&(AvB)
Av¬A = 1, значит остаётся AvB
2) F =A&(¬AvB)
По тому же закону раскрываем скобки
(A&¬A)v(A&B)
A&¬A = 0, значит остаётся A&B
3. (AvB)&(¬BvA)&(¬CvB)
По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид
A&(¬CvB)
Можно раскрыть скобки, получим
A&¬C v A&B
4) F =(1v(AvB))v((AC)&1)
Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1
Получаем выражение
1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1
ответ 1