Pagini recente » Cod sursa (job #3326545) | Cod sursa (job #3312959) | Cod sursa (job #3128682) | Cod sursa (job #3311580) | Cod sursa (job #3311535)
//
// main.cpp
// Evaluarea unei expresii
//
// Created by Andrada Minca on 23.09.2025.
//
#include <fstream>
#include <string>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int i=0;
int expresie(string &s);
int termen(string &s);
int factor(string &s);
int numar(string &s);
int expresie(string &s)
{
int ans=termen(s);
while(s[i]=='+'||s[i]=='-')
{
if(s[i]=='+'){i++;ans+=termen(s);}
else {i++;ans-=termen(s);}
}
return ans;
}
int termen(string &s)
{
int ans=factor(s);
while(s[i]=='*'||s[i]=='/')
{
if(s[i]=='*'){i++;ans*=factor(s);}
else {i++;ans/=factor(s);}
}
return ans;
}
int factor(string &s)
{
int ans;
if(s[i]=='('){i++;ans=expresie(s);i++;}
else ans=numar(s);
return ans;
}
int numar(string &s)
{
int ans=0;
while(s[i]>='0'&&s[i]<='9')
{
ans=ans*10+s[i]-'0';
i++;
}
return ans;
}
int main()
{
string s;
cin>>s;
cout<<expresie(s);
return 0;
}