/******************** reverse Polish calculater *******************/ int main(void) { int type; double op2; char s[MAXOP]; while((type = getop(s)) != EOF) { switch(type){ case NUMBER: push(atof(s)); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop() - op2); break; case '/': op2 = pop(); if(op2 != 0.0) push(pop() / op2); else printf("error: zero divisor\n"); break; case'%': op2 = pop(); if(op2 != 0.0) push(fmod(pop(), op2)); else printf("error: zero divisor\n"); case'?': showTop(); break; case'#': duplicate(); break; case'~': swapitems(); case'!': clearstack(); break; case'\n': printf("\t%.8g\n", pop()); break; default: printf("error: unknown command %s\n", s); break; } } return 0; }
void Mpdf::mouseMoveEvent(QMouseEvent *event) { if (event->pos().y() <= 70) { showTop(); } else if (event->pos().y() >= 100) { hideTop(); } }
int main(void) { int type; double op2; char s[MAXOP]; int flag = TRUE; while((type = Getop(s)) != EOF) { switch(type) { case NUMBER: push(atof(s)); break; case IDENTIFIER: dealWithName(s); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop()- op2); break; case '/': op2 = pop(); if(op2) push(pop() / op2); else printf("\nError: division by zero!"); break; case '%': op2 = pop(); if(op2) push(fmod(pop(), op2)); else printf("\nError: division by zero!"); break; case '?': showTop(); break; case '#': duplicate(); break; case '~': swapItems(); break; case '!': clearStack(); case '\n': printf("\n\t%.8g\n", pop()); break; default: printf("\nError: unknown command %s.\n", s); break; } } return EXIT_SUCCESS; }
/******************** reverse Polish calculater *******************/ int main(void) { int type; double op2; char s[MAXOP]; struct varType var[MAXVARS]; clearstack(var); while((type = getop(s)) != EOF) { switch(type){ case NUMBER: push(atof(s)); break; case IDENTIFIER: mathname(s); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); push(pop() - op2); break; case '/': op2 = pop(); if(op2 != 0.0) push(pop() / op2); else printf("error: zero divisor\n"); break; case'%': op2 = pop(); if(op2 != 0.0) push(fmod(pop(), op2)); else printf("error: zero divisor\n"); case'?': showTop(); break; case'#': duplicate(); break; case'~': swapitems(); case'!': clearstack(var); break; case'\n': printf("\t%.8g\n", pop()); break; case ENDSTRING: break; case'=': pop(); var[pos].val = pop(); last.val = var[pos].val; push(last.val); break; case'<': printf("The last variable used was: %s (value == %g)\n", last.name, last.val); break; default: printf("error: unknown command %s\n", s); break; } } return 0; }
int main() { FILE *fp; Pile pile; tInfo info; char op; printf("\t\t\tEjercicio 4 tp3 Pila estatica\n"); if(!openFile(&fp,"r+b",FILENAME,!CON_SIN_MSJ)) { createFile(); if(!openFile(&fp,"r+b",FILENAME,CON_SIN_MSJ)) return 0; } createStack(&pile); fread(&info,1,sizeof(tInfo),fp); while(!feof(fp) && !isStackFull(&pile)) { putInStack(&pile,&info); fread(&info,1,sizeof(tInfo),fp); } fclose(fp); op = menuOption(MSJ,OPTION); while(op != 'D') { switch(op) { case 'A': { newInfo(&info); if(putInStack(&pile, &info) == PILA_LLENA) puts("pila llena no se pudo cargar la nueva informacion"); break; } case 'B': { puts("Viendo tope de la pila: "); if(showTop(&pile,&info) != PILA_VACIA) showInfo(&info); else puts("Pila vacia, no se puede ver tope"); break; } case 'C': { puts("Sacando de pila..."); if(takeOfStack(&pile,&info) != PILA_VACIA) showInfo(&info); else puts("No se puede sacar de pila, pila vacia"); break; } } op = menuOption(MSJ,OPTION); } if(!openFile(&fp,"r+b",FILENAME,CON_SIN_MSJ)) { puts("Vaciando pila..."); emptyStack(&pile); return 0; } while(!isStackEmpty(&pile)) { takeOfStack(&pile,&info); putInTheEndFile(&fp,&info); } emptyStack(&pile); fclose(fp); return 0; }