Pagini recente » Cod sursa (job #906593) | Cod sursa (job #191870) | Cod sursa (job #224036) | Cod sursa (job #2331452) | Cod sursa (job #564145)
Cod sursa(job #564145)
#include<fstream>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char a[1001],*p,x;
bool v[26];
int N;
bool exp();
bool fact()
{ bool rez;
if(*p==' ') p++;
if(*p=='N' && *(p+1)=='O')
{ p+=3; return !fact(); }
if(*p=='T' && *(p+1)=='R')
{ p+=4; return 1; }
if(*p=='F' && *(p+1)=='A')
{ p+=5; return 0; }
if(*p=='(')
{ p++;
rez=exp();
p++;
return rez;
}
p++; return v[*(p-1)];
}
bool term()
{ bool rez=fact();
if(*p==' ') p++;
while(*p && *p=='A')
{ p+=3 , rez&=fact();
if(*p==' ') p++;
}
return rez;
}
bool exp()
{ bool rez=term();
if(*p==' ') p++;
while(*p && *p!=')')
{ p+=2 , rez|=term();
if(*p==' ') p++;
}
return rez;
}
int main()
{ f.get(a,1001);
f>>N;
for(int i=1;i<=N;i++)
{ f>>x; p=a;
v[x]=!v[x];
g<<exp();
}
f.close();
g.close();
return 0;
}