Ïðèìåð: Ãëîáàëüíàÿ ñåòü INTERNET
ß èùó:
Íà ãëàâíóþ  |  Äîáàâèòü â èçáðàííîå  

Ãëàâíàÿ/

Ïðîãðàììèðîâàíèå, áàçû äàííûõ. /

Ðåàëèçàöèÿ ÿçûêîâîãî ïðîöåññîðà îïåðàòîðà FOR ÿçûêà BASIC.

←ïðåäûäóùàÿ ñëåäóþùàÿ→  
1 2 3 4 

)==TRUE) return; // åñëè ÷èñëî áåç çíàêà - âåpíóòüñÿ

  error(7);   // èíà÷å - îøèáêà

}

/***********************************************************/

/*                                                                                                                                */

/*   ×èñëî áåç çíàêà                                                                                                */

/*                                                                                                                                */

/***********************************************************/

int cbz(void)

{

  if (dc()==FALSE) return(FALSE); // åñëè íå äåñÿòè÷íîå ÷èñëî âåpíóòü ëîæü

  sc();

  if(next=='E')    // åñëè 'E'

   {

     sc();

     if(isdigit(next))

      {

                while(isdigit(next)) sc();  // ñ÷èòûâàòü ïîêà öèôpû

                unsc();

                return(TRUE);   // âåpíóòü èñòèíó

      }

     return(FALSE);  // èíà÷å âåpíóòü ëîæü

   }

  unsc();

  return(TRUE);

}

/********************************************************/

/*                                                                                                                         */

/*   Äåñÿòè÷íîå ÷èñëî                                                                                     */

/*                                                                                                                         */

/********************************************************/

int dc(void)

{

  int i=0;

  sc();

  if(isdigit(next))

   {

     while(isdigit(next))   // ïîêà îäíè öèôpû

      {

                sc();               // ñ÷èòûâàåì

                if(next=='.'&&i!=1)   // åñëè '.'

                 {

                   i=1;

                   sc();          // ñ÷èòàòü

                 }

      }

     unsc();

     return(TRUE);

   }

  else

   {

     unsc();

     return(FALSE);

   }

}

/**************************************************/

/*                                                                                                            */

/*   Ôóíêöèÿ îápàáîòêè îøèáîê                                                      */

/*                                                                                                            */

/**************************************************/

void error(int i)

{

  num_err++;           // óâåëè÷èòü ñ÷åò÷èê îøèáîê

  gotoxy(1,num_err);

  switch(i)

   {

     case 1: cprintf("%d ñòð. Îæèäàåòñÿ êîíåö ñòpîêè",cur_str);

                     break;

     case 2: cprintf("%d ñòð. Îæèäàåòñÿ TO",cur_str);

                     break;

     case 3: cprintf("%d ñòð. Îæèäàåòñÿ FOR",cur_str);

                     break;

     case 4: cprintf("%d ñòð. Îæèäàåòñÿ èäåíòèôèêàòîð",cur_str);

                     break;

     case 5: cprintf("%d ñòð. Îæèäàåòñÿ ')'",cur_str);

                     break;

     case 6: cprintf("%d ñòð. Îæèäàåòñÿ '='",cur_str);

                     break;

     case 7: cprintf("%d ñòð. Îæèäàåòñÿ ÷èñëî, èä-ð èëè âûð-èå ",cur_str);

                     break;

     case 8: cprintf("%d ñòð. Íåïðåäâèäåííûé êîíåö ñòðîêè èëè ôàéëà",cur_str);

   }

}

/*****************************************************/

/*                                                                                                                   */

/*   Ôóíêöèÿ ñ÷èòûâàíèÿ ñëåäóþùåãî ñèìâîëà                                  */

/*                                                                                                                   */

/*****************************************************/

void sc(void)

{

  next=fgetc(fd);

}

/*******************************************************/

/*                                                                                                                        */

/*   Ôóíêöèÿ âîçâpàùåíèÿ ñ÷èòàííîãî ñèìâîëà â ïîòîê                        */

/*                                                                                                                        */

/*******************************************************/

void unsc(void)

{

  ungetc(next,fd);

}

/*************************************************/

/*                                                                                                         */

/*   Ôóíêöèÿ ïpîïóñêà òåêóùåãî ñëîâà                                       */

/*                                                                                                        */

/************************************************/

void next_lex(void)

{

  sc();

  while(next!=' ') sc();  // ñ÷èòûâàòü äî 1-ãî ïpîáåëà

  unsc();

}

/**********************************************/

/*                                                                                                    */

/*   Ôóíêöèÿ óäàëåíèÿ ïpîáåëîâ                                             */

/*                                                                                                    */

/**********************************************/

void del_space(void)

{

  char liter;

  liter=fgetc(fd);

  while((isspace(liter))) liter=fgetc(fd); // ñ÷èòûâàòü ïîêà ïpîáåëû

  ungetc(liter,fd);

}

void        main()

{

  clrscr();

  for (;;)  // áåñêîíå÷íûé öèêë

   {

     switch (menu(27,8,"Âûáåpèòå íóæíîå",ss))  // âûâåñòè ìåíþ

      {

                case  0 : about();

                                  break;

                case  1 : grammatic();

                                  break;

                case  2 : language();

                                  break;

                case  3 : load();

                                  break;

                default : quit();

      }

   }

}

←ïðåäûäóùàÿ ñëåäóþùàÿ→  
1 2 3 4 


Copyright © 2005—2007 «RefStore.Ru»