Pagini recente » Cod sursa (job #2028654) | Cod sursa (job #3131679) | Cod sursa (job #1255434) | Cod sursa (job #2046913) | Cod sursa (job #173598)
Cod sursa(job #173598)
#include <fstream.h>
#include <string.h>
//#include <conio.h>
ofstream fout("ecutie.out");
char ec[1000];
int ind, N;
void Citire()
{
ifstream fin("ecuatie.in");
fin.get(ec, 1000);
N = strlen(ec);
fin.close();
}
float expr();
float factor();
float var();
float factor()
{
float t;
if (ec[ind] == '(' || ec[ind] == ')')
{
ind++;
t = expr();
ind++;
}
else
{
t=0;
while (ind<N && ec[ind] != '+' && ec[ind] != '-' && ec[ind] != '*' && ec[ind] != '(' && ec[ind] !=')')
{
t = t*10+ec[ind]-'0';
ind++;
}
//ind++;
}
return t;
}
float var()
{
float t = factor();
while (ind<=N && ec[ind] == '*' || ec[ind] == '/')
{
//ind++;
if (ec[ind] == '*'){ ind++;
t *= factor();
}
else
if (ec[ind] == '/'){ ind++;
t /= factor();
}
}
return t;
}
float expr()
{
float t = var();
while(ind<=N && ec[ind] == '+' || ec[ind] == '-')
{
if (ec[ind] == '+')
{
ind++;
t += var();
}
else
if (ec[ind] == '-')
{
ind++;
t -= var();
}
}
return t;
}
int main()
{
//clrscr();
Citire();
fout<<expr()<<"\n";
return 0;
//getch();
}