سفارش تبلیغ
صبا ویژن
چگونه در برنامه خود از کلید های تابعی استفاده کنیم (جمعه 85/8/26 ساعت 9:47 عصر)

#include <stdio.h>
#include <conio.h>
 main()
  {
  char key1,key2;
  if(key1=getch()==0)
  key2=getch();
  switch(key2)
  {
  case 59:puts("you press F1");
  break;
  case 60:puts("you press F2");
  break;
  case 61:puts("you press F3");
  break;
  case 62:puts("you press F4");
  break;
  case 63:puts("you press F5");
  break;
  case 64:puts("you press F6");
  break;
  case 65:puts("you press F7");
  break;
  case 66:puts("you press F8");
  break;
  case 67:puts("you press F9");
  break;
  case 68:puts("you press F10");
  break;
  }
  getchar();
}





change infix 2 postfix (شنبه 85/8/20 ساعت 8:31 عصر)

#include <stdio.h>
#include <conio.h>
#define max 100
typedef enum {lpar,rpar,min,pul,mul,div,mod,eos,operand} pre;
char expr[]={"a/b-c+d*e-a*c"};
int val[]={0,19,12,12,13,13,13,0};
pre  stack[max];

 int addQ(int *top,int item) ;
 int delQ(int *top);
 void print_token(pre token);
 pre get_token(char *simbol,int *n);
 /************************************************************/
 main()
 {
     pre token;
     char simbol;
     int n=0,tops=0,i;
     stack[0]=eos;

   for(i=0,token=get_token(&simbol,&n);i<14;++i,token=get_token(&simbol,&n))
    {
       if(token==operand)
       printf("%c",simbol);
       else
      if(val[token]>val[stack[tops]])
        addQ(&tops,token);
      else
      {
         while(tops!=0)
         print_token(delQ(&tops));
         addQ(&tops,token);
         }


      } //end for

  getch();
 }
 /*******************************************************/
 int addQ(int *tops,int item)
 {
 if(*tops==max-1)
 return(125);
 else
 stack[++*tops]=item;
 }
 /*****************************************************/
 int delQ(int *tops)
 {
 if(*tops==-1)
 return(126);
 return(stack[(*tops)--]);
 }
 /*********************************************/
pre get_token(char *simbol,int *n)
 {
 *simbol=expr[(*n)++];
 switch(*simbol)
   {
   case "(":return lpar;
   case ")":return rpar;
    case "+":return pul;
    case "*":return mul;
    case "-":return min;
    case "/":return div;
    case "%":return mod;
    case "\0":return eos;
    default :return operand;
   }
 }
 /***************************************************/
 void print_token(pre token)
 {
 switch (token)
  {
   case lpar:printf("(");break;
   case rpar:printf(")"); break;
   case min:printf("-");break;
 case pul:printf("+"); break;
 case div:printf("/"); break;
 case mod:printf("%"); break;
 case mul:printf("*"); break;
  }
 }





 
  • بازدیدهای این وبلاگ ?
  • امروز: 0 بازدید
    بازدید دیروز: 0
    کل بازدیدها: 1839 بازدید
  • درباره من
  • اشتراک در خبرنامه
  •