Pagini recente » Cod sursa (job #3237920) | Cod sursa (job #2980022) | Cod sursa (job #550714) | Cod sursa (job #1956577) | Cod sursa (job #2923421)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
const int NMAX = 1e5 + 3;
char s[NMAX], *p;
bool cif (char c)
{
return ('0' <= c && c <= '9');
}
int EVAL();
int TERMEN();
int FACTOR();
int EVAL()
{
int rasp = TERMEN();
if(*p == '+')
p++, rasp += TERMEN();
if(*p == '-')
p++, rasp -= TERMEN();
return rasp;
}
int TERMEN()
{
int rasp = FACTOR();
if(*p == '*')
p++, rasp *= FACTOR();
if(*p == '/')
p++, rasp /= FACTOR();
return rasp;
}
int FACTOR()
{
if(*p == '(') {
p++;
int rasp = EVAL();
p++;
return rasp;
}
int rasp = 0;
int sign = 1;
if(*p == '-')
sign = -1;
while(cif(*p))
rasp = rasp * 10 + *p - '0', p++;
return rasp;
}
int main()
{
fin >> (s + 1);
p = (s + 1);
fout << EVAL();
return 0;
}