Pagini recente » Cod sursa (job #2808748) | Cod sursa (job #2895355) | Monitorul de evaluare | Cod sursa (job #639923) | Cod sursa (job #2103803)
#include<fstream>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char s[1001],*p,c;
int N;
bool v[101],expresie(),And(),element();
bool expresie(){
bool r=And();
while(*p=='O' && *(p+1)=='R')p+=3,r|=And();
return r;
}
bool And(){
bool r=element();
while(*p=='A' && *(p+1)=='N')p+=4,r&=element();
return r;
}
bool element(){
bool r=0;
if(*p='(')++p,r=expresie(),++p;
else if(*p=='F' && *(p+1)=='A')p+=6,r=false;
else if(*p=='T' && *(p+1)=='R')p+=5,r=true;
else if(*p=='N' && *(p+1)=='O')p+=4,r!=element();
else r=v[*p-'A'],p+=2;
return r;
}
int main()
{
f.getline(s,1001);
f.get();
f>>N;
while(N--){
f>>c;
v[c-'A']=!v[c-'A'],p=s;
g<<expresie();
}
return 0;
}