#include
#include
#define FALSE -1
#define TRUE 1
void cabecera(void);
void cabecera(void) {
int i; //local mientras se ejecuta la fun cabecera(no se contrapone con la otra i)
system("cls"); //ordena al SO que limpie la pantalla
printf(""); //que imprima el pipe
for(i=0;i<33;i++) un =" }" i="0;i<33;i++)"> -1) {
return FALSE;
}
return TRUE;
}
int menu(void) {
int op; //declara la variable op como entera
printf("\n"); //imprime mensaje
printf("\t1.- Push un dato\n");
printf("\t2.- Pop un dato\n");
printf("\t3.- stacktop\n");
printf("\t4.- Empty\n");
printf("\t5.- Imprime\n");
printf("\t6.- Operador\n");
printf("\t7.- Salida\n\n");
printf(" Selecciona la opcion -> ");
scanf("%d", &op); //recibe la opcion por el teclada y lo guarda en la variable local OP
return(op); // regresa el valor de OP en donde fue llamada
} //termina funcion
int main(void) {
char operador;
int opcion = 0, temp, i, otratemp[2];
int pila[15], tope = -1;
while(opcion < opcion =" menu();"> "); //imprime
scanf("%d", &temp); //guarda en temp
tope = tope + 1; //incrementa
pila[tope] = temp; //que guarde el dato que teclearon en el arreglo
break; //saltar hasta terminar el bloque de instrucciones
}//termina la opcion 1
case 2: {
cabecera();
if(empty(tope) == FALSE) {
printf("Elemento retirado es %d \n\n", pila[tope]);
tope = tope -1;
} else {
printf("ERROR, pila vacia\n\n");
}
system("pause");
break;
}
case 3: {
cabecera();
if(empty(tope) == FALSE) {
printf("Elemento stacktop es %d \n\n", pila[tope]);
} else {
printf("ERROR, pila vacia\n\n");
}
system("pause");
break;
}
case 4: {
cabecera();
if(empty(tope) == TRUE) {
printf("la pila esta vacia\n\n");
system("pause");
} //termina el verdadero IF
else{
printf("la pila NO esta vacia\n\n");
system("pause");
} //termina el falso del IF
break;
} //termina la opcion 4
case 5: {
cabecera();
for(i=tope;i>-1;i--) {
printf("\t\t[%d]\n", pila[i]);
} //termina la opcion 5
system ("pause");
break;
}
case 6: {
system("cls");
printf("Que operacion hay que realizar ->");
operador = getchar();
switch(operador) {
case '*': {
if(empty(tope) == FALSE) {
otratemp[0]= pila[ tope -1];
tope = tope-1;
pila[tope + 1] = otratemp[0] * otratemp[1];
break;
}
else { // error
printf("ERROR, pila vacia\n\n");
}
}
}
}
}
}
getchar();
return 0;
}
Si encuentran algun error, duda o sugerencia por favor dejenla aqui o ya sea en nuestro video la direccion es:
http://www.youtube.com/watch?v=RDJ7OvYeTKM
No hay comentarios:
Publicar un comentario