实验三 递归下降分析程序实验

一、        实验目的

     编制一个递归下降分析程序。

 

二、        实验内容和要求

     输入:正规式

输出:判断该正规式是否正确。

 

三、        实验方法、步骤及结果测试

   1.    源程序名:递归下降分析程序.c

可执行程序名:递归下降分析程序.exe

  2.

 

 

 3.主要程序段及其解释:

#include<stdio.h>    
#include<string> 
char str[50]; 
int index=0; 
void E();                //E->TX; 
void X();                //X->+TX | e 
void T();                //T->FY 
void Y();                //Y->*FY | e 
void F();                //F->(E) | i 

int main()                /*递归分析*/
{ 
    int len; 
    int m; 
    printf("请输入要测试的次数:"); 
    scanf("%d",&m); 
    while(m--) 
    { 
        printf("请输入字符串(长度<50>):\n"); 
        scanf("%s",str);
        len=strlen(str);
        //str[len]='#';
        str[len+1]='\0'; 
        E(); 
        printf("%s为合法符号串!\n",str); 
        strcpy(str,""); 
        index=0;
    } return 0; 
} 

void E() 
{     T();    X();}
void X() 
{ 
    if(str[index]=='+')
    {     index++; 
        T(); 
        X(); 
    } } 
void T() 
{     F();     Y(); } 
void Y() 
{     if(str[index]=='*') { 
        index++; 
        F(); 
        Y(); 
    } } 
void F() 
{ 
    if(str[index]=='i')
    {    index++; } 
    else if (str[index]=='(') 
    { 
        index++; 
        E(); 
        if(str[index]==')') 
        {     index++; }else
        { 
            printf("\n非法的符号串!\n");
            exit (0); 
        }     } 
    else
    {
        printf("非法的符号串!\n"); 
        exit(0); 
    } 
}

4.      运行结果及分析

 

 

四、        实验总结

通过这次的实验,对于递归又有了新的认识,对于工作原理也进一步的掌握了。本次实验对我帮助很大。

转载于:https://www.cnblogs.com/wha000/p/6188810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值