#include <stdio.h> #include <stdlib.h> /* Логическая задача A - оля приедет B - Ксюша приедет C - Настя приедет D - Маша приедет Если Оля и Ксюша приедет, то Настя не приедет Если Ксюша не приедет, то приедет Настя и Маша Наста приедет операция импликация (если А то В) ~A || B */ int Not(int a) { return a==0?1:0;} int To(int a, int b){ return (Not(a) || b)!=0; } int A(int d) { return (d & (1<<0))!=0; } int B(int d) { return (d & (1<<1))!=0; } int C(int d) { return (d & (1<<2))!=0; } int D(int d) { return (d & (1<<3))!=0; } int Usloviye(int d){ return (To(A(d)||B(d), Not(C(d))) && To(Not(B(d)), C(d)&&D(d)) && C(d)) != 0; } int main(){ int d; for(d=0;d<16;d++){ if(Usloviye(d)){ if(A(d)) puts("A"); if(B(d)) puts("B"); if(C(d)) puts("C"); if(D(d)) puts("D"); if(1) puts("---"); } } return 0; }