Pagini recente » Cod sursa (job #2360642) | Cod sursa (job #433211) | Cod sursa (job #2773826) | Cod sursa (job #2164301) | Cod sursa (job #1860774)
#include <fstream>
#include <cstring>
#define in "evaluare1.in"
#define out "evaluare1.out"
#define N 103
using namespace std;
ifstream fin(in);
ofstream fout(out);
typedef long long eent;
char c[N];
int n,i,j;
enum ordine{nimic,sum,imp,rid};
int EF = nimic;
inline eent expresie()
{
eent A;
i = j;
}
inline eent numar()
{
eent A;
i = j;
//while(strchr("!0123456789",c[j]))
}
inline eent rid_log(eent A,eent B)
{
if(B < 2) return A;
else
{
eent pw = rid_log(A,B/2);
if(B%2 == 0) return pw*pw;
return pw*pw*A;
}
}
int main()
{
fin.getline(c,N);
n = strlen(c);
eent A,B;
if(c[j] == '(')
++j, A = expresie();
else A = numar();
i = j = 0;
while(j<n)
{
if(c[j] == '+') EF = sum;
else if(c[j] == '/') EF = imp;
else EF = rid;
if(c[j] == '(')
++j, B = expresie();
else B = numar();
if(EF !=nimic)
if(EF == sum) A = A+B;
else if(EF == imp) A = A/B;
else A = rid_log(A,B);
}
fin.close(); fout.close();
return 0;
}