Pagini recente » Cod sursa (job #1686677) | Cod sursa (job #971663) | Cod sursa (job #1854996) | Cod sursa (job #1572126) | Cod sursa (job #2815938)
#include<bits/stdc++.h>
#define DIM 1050
using namespace std;
ifstream fin("bool.in");
ofstream fout("bool.out");
bool termen();
bool expresie();
bool factor();
bool valori[30];
char s[DIM], aux[DIM],c;
int i,j,n,poz;
int main(){
fin.getline(aux,1000);
for(j=0;j<=strlen(aux);j++){
if(aux[j]!=' ')
s[++poz]=aux[j];
}
fin>>n;
for(j=1;j<=n;j++){
fin>>c;
i=1;
valori[c-'A']=!valori[c-'A'];
fout<<expresie();
}
return 0;
}
bool factor(){
bool r;
if(s[i]=='N'&&s[i+1]=='O'){
i+=3;
r=!(factor());
}
else if(s[i]=='T'&&s[i+1]=='R'){
i+=4;
r=true;
}
else if(s[i]=='F'&&s[i+1]=='A'){
i+=5;
r=false;
}
else if(s[i]=='('){
i++;
r=expresie();
i++;
}
else {
r=valori[s[i]-'A'];
i++;
}
return r;
}
bool termen(){
bool r=factor();
while(s[i]=='A'&&s[i+1]=='N'){
i+=3;
r&=factor();
}
return r;
}
bool expresie(){
bool r=termen();
while(s[i]=='O'&&s[i+1]=='R'){
i+=2;
r|=termen();
}
return r;
}