Pagini recente » Cod sursa (job #543164) | Cod sursa (job #2127349) | Cod sursa (job #266181) | Cod sursa (job #1262303) | Cod sursa (job #2026132)
#include <fstream>
using namespace std;
string A;
int i;
int expresie();
int factor()
{
if(A[i]=='(') {
i++;
int t = expresie();
i++;
return t;
}
int nr = 0;
while('0'<=A[i] && A[i]<='9') {
nr = nr*10 + (A[i]-'0');
i++;
}
return nr;
}
int termen()
{
int produs = factor();
while(i<A.size() && (A[i]=='*' || A[i]=='/')) {
if(A[i]=='*') {
++i;
int y = factor();
produs *= y;
}
else if(A[i]=='/') {
++i;
int y = factor();
produs /= y;
}
}
return produs;
}
int expresie()
{
int suma = termen();
while(i<A.size() && (A[i]=='+' || A[i]=='-')) {
if(A[i]=='+') {
++i;
int y = termen();
suma += y;
}
else if(A[i]=='-') {
++i;
int y = termen();
suma -= y;
}
}
return suma;
}
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int main()
{
f>>A;
g<<expresie();
return 0;
}