コード例 #1
0
ファイル: ex4-4.c プロジェクト: jaseemkp/KNR-C-PROG
/******************** 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;
}
コード例 #2
0
ファイル: mpdf.cpp プロジェクト: qihao/Lookshare-GUI
void Mpdf::mouseMoveEvent(QMouseEvent *event)
{
    if (event->pos().y() <= 70)
    {
        showTop();
    }
    else if (event->pos().y() >= 100)
    {
        hideTop();
    }
}
コード例 #3
0
ファイル: 4-5.c プロジェクト: killerhack/c-awsome-features
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;
}
コード例 #4
0
ファイル: ex4-6.c プロジェクト: jaseemkp/KNR-C-PROG
/******************** 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;
}
コード例 #5
0
ファイル: main.c プロジェクト: jorGonzalez29/manejoCadenas
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;
}