Pagini recente » Cod sursa (job #500900) | Cod sursa (job #2918309) | Cod sursa (job #2618409) | Cod sursa (job #1636909) | Cod sursa (job #3134875)
#include<bits/stdc++.h>
using namespace std;
bool i;
string s;
bool valori[50];
void depaseste()
{
while ( s[i] == ' ' )
i++;
}
bool constanta();
bool variabila();
bool nu();
bool si();
bool sau();
bool expresie();
bool constanta()
{
depaseste();
if ( s[i] == 'T' )
{
i += 4;
return true;
}
i += 5;
return false;
}
bool variabila()
{
depaseste();
bool ans = valori[s[i]-'A'];
i += 2;
return ans;
}
bool expresie()
{
depaseste();
bool ans;
if ( s[i] == '(' )
{
i++;
ans = expresie();
i++;
}
else if ( (s[i] == 'T' || s[i] == 'F') && s[i+1] != ' ' )
{
ans = constanta();
}
else
{
ans = variabila();
}
return ans;
}
bool nu()
{
depaseste();
i += 3;
int ans = !expresie();
return ans;
}
bool si()
{
depaseste();
int ans = expresie();
i += 3;
ans &= expresie();
return ans;
}
bool sau()
{
depaseste();
int ans = expresie();
i += 2;
ans |= expresie();
return ans;
}
int main()
{
freopen("bool.in", "r", stdin);
freopen("bool.out", "w", stdout);
getline(cin, s);
int n;
cin>>n;
char c;
cin.get();
while ( n-- )
{
cin.get(c);
valori[c-'A'] = !valori[c-'A'];
i = 0;
cout<<expresie();
}
return 0;
}