Pagini recente » Cod sursa (job #592580) | Cod sursa (job #50498) | Cod sursa (job #2028862) | Cod sursa (job #995016) | Cod sursa (job #2531765)
#include <fstream>
using namespace std;
ifstream f("bool.in");
ofstream g("bool.out");
char s[1005],*p;
int n;
bool val[1005];
bool oor();
bool valoare();
bool aand();
bool oor()
{
bool r=aand();
p++;
while(*p=='O')
{
while(*p!=' ')
p++;
p++;
r|=aand();
}
return r;
}
bool aand()
{
int r=valoare();
p++;
while(*p=='A')
{
while(*p!=' ')
p++;
p++;
r&=valoare();
}
return r;
}
bool valoare()
{
bool nr=false;
if(*p=='(')
{
p++;
return oor();
p++;
p++;
}
bool NOOT=false;
if(*p=='N')
{
char *p2 = p;
p2++;
if(*p2!=' ')
{
while(*p!=' ')
p++;
p++;
return !valoare();
}
}
if(*p=='T')
{
char *p2=p;
p2++;
if(*p2!=' ')
{
while(isupper(*p))
p++;
if(*p!=')')
p++;
}
return true;
}
if(*p=='F')
{
char *p2=p;
p2++;
if(*p2!=' ')
{
while(isupper(*p))
p++;
if(*p!=')')
p++;
}
return false;
}
nr=val[*p];
p++;
if(*p!=')')
p++;
return nr;
}
int main()
{
f.getline(s,1000);
f>>n;
for(int i=1;i<=n;i++)
{
char ch;
f>>ch;
if(val[ch]==true)
val[ch]=false;
else
val[ch]=true;
p=s;
g<<oor();
}
g<<'\n';
return 0;
}