All pastes #216462 Raw Edit

Untitled

public text v1 · immutable
#216462 ·published 2006-10-23 03:38 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(){
	Stack stk;
	char op[30];
	int i=0,o,n,nums,a[MAX],b,d,c,result,z,isnum;
	
	cout << "ingrese la operacin: ";
	cout << endl;
	gets(op);
	n = strlen(op);
	if(n!=0){
	for(z=0;z<n;z++){
		isnum=0;
		while((op[i] != 32) && (op[i] > 47) && (op[i] < 58) && (op[i] != 0))
		{
			
			nums=nums+1;
			a[nums-1] = op[i];
			isnum=1;
			i++;
	}
		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;
				   }
			default : { i++;
			break;
			}
		}
	}
	}
		else { 
			cout << "usted no ha ingresado una operacin" << endl;
	}
	if(!stk.empty())
	{
		cout << "el resultado de la operacin es: " << stk.top() << endl;
	}
return 0;
	}