All pastes #216503 Raw Edit

Untitled

public text v1 · immutable
#216503 ·published 2006-10-23 04:16 UTC
rendered paste body
#include <iostream.h>
#include <stdio.h>
#include "stack.cpp"
#include <string.h>
#define MAX 7
int elevar(int x,int y){ //funcion que eleva x a y
	int u;
	for(u=0;u<y;u++){
		x*=x;
		}
	return x;
}
int main(void){
	Stack stk;
	char op[30];
	int i=0,o,n,a[MAX],b,d,z,isnum,nums;
	long c;
	float result;
	
	cout << "ingrese la operacin: ";
	cout << endl;
	gets(op);
	n = strlen(op);
	if(n!=0){
	for(z=0;z<n;z++){
		isnum=0;
		nums=0;
		while((op[i] > 47) && (op[i] < 58))
		{
			a[nums] = op[i];
			isnum=1;
			i++;
			nums++;
	}
		if(isnum == 1){
		for(o=0;o<nums;o++){
		c+=elevar(10,nums-o)*a[o];
		}
		stk.push(c);
		}
		switch(op[i]){
			case '/' : {			 
				b =  stk.top();
				stk.pop();
				d = stk.top();
				stk.pop();
				result = d/b;
				stk.push(result);
				break;
				   }
			case '%' : {
				b =  stk.top();
				stk.pop();
				d = stk.top();
				stk.pop();
				result = d%b;
				stk.push(result);
				break;
				   }
			case '+' : {
				b = stk.top();
				stk.pop();
				d = stk.top();
				stk.pop();
				result = d+b;
				stk.push(result);
				break;
				   }
			case '-' : {
				b = stk.top();
				stk.pop();
				d = stk.top();
				stk.pop();
				result = d-b;
				stk.push(result);
				break;
				   }
			case '*' : {
				b = stk.top();
				stk.pop();
				d = stk.top();
				stk.pop();
				result = d*b;
				stk.push(result);
				break;
				   }
		
		i++;	
		}
	}
	}
		else { 
			cout << "usted no ha ingresado una operacin" << endl;
	}
	if(!stk.empty())
	{
		cout << "el resultado de la operacin es: " << stk.top() << endl;
	}

	}