Pagini recente » Cod sursa (job #2275565) | Cod sursa (job #1195758) | Cod sursa (job #570648) | Cod sursa (job #695029) | Cod sursa (job #1814959)
#include <stdio.h>
//GLOBALS DIVISION//
char MemoryBlock;
//PROTOTYPE DIVISION//
int Express();
int Chunk();
int Particle();
//PROCEDURES DIVISION//
int Express() {
int Sum = Chunk();
while (MemoryBlock == '+' || MemoryBlock == '-') {
if (MemoryBlock == '+') {
scanf("%c", &MemoryBlock);
Sum += Chunk();
}
if (MemoryBlock == '-') {
scanf("%c", &MemoryBlock);
Sum -= Chunk();
}
}
return Sum;
}
int Chunk() {
int Prod = Particle();
while (MemoryBlock == '*' || MemoryBlock == '/') {
if (MemoryBlock == '*') {
scanf("%c", &MemoryBlock);
Prod *= Particle();
}
if (MemoryBlock == '/') {
scanf("%c", &MemoryBlock);
Prod /= Particle();
}
}
return Prod;
}
int Particle() {
int Number = 0, Sign = 1;
while (MemoryBlock == '-') {
scanf("%c", &MemoryBlock);
Sign = -Sign;
}
if (MemoryBlock == '(') {
scanf("%c", &MemoryBlock);
Number = Express();
scanf("%c", &MemoryBlock);
return Sign * Number;
}
while (MemoryBlock >= '0' && MemoryBlock <= '9') {
Number = Number * 10 + MemoryBlock - '0';
scanf("%c", &MemoryBlock);
}
return Sign * Number;
}
int main() {
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%c", &MemoryBlock);
printf("%d",Express());
}