Cod sursa(job #846581)

Utilizator GoldEagleAndrei Iulian GoldEagle Data 2 ianuarie 2013 14:45:09
Problema Evaluarea unei expresii Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
#include<string>
using namespace std;

char sir [10000];
int i;
int sum();
int prod ();
int nr();

int main()
{ifstream fin ("evaluare.in");
ofstream gin ("evaluare.out");
fin.getline(sir,1000);
gin<<sum();
fin.close(); gin.close();
return 0;}

int sum()
{int v=prod();
while (sir[i]=='+' || sir[i]=='-') 
{   if (sir[i]=='+') {i++; v+=prod();}
	else {i++; v-=prod();}  }
return v;}

int prod ()
{int v=nr();
while (sir[i]=='*' || sir[i]=='/') 
{ if (sir [i]=='*') {i++; v*=nr();}
else {i++; v/=nr();} }
return v;}

int nr()
{int v=0;
if (sir[i]=='(') {i++; v=sum(); i++;}
else 
{while (sir[i]>='0' && sir[i]<='9') {v=v*10+(sir[i]-'0'); i++;} }
return v;}