*--- --- --- --声明--- --- --- -----*/ /* VC6.0下运行通过 此程序为本人苦心所做,请您在阅读的时候,尊重本人的 劳动。可以修改,但当做的每一处矫正或改进时,请将改进 方案,及修改部分发给本人 (修改部分请注名明:修改字样) Email: jink2005@sina.com QQ: 272576320 ——初稿完成:06-5-27 jink2005 补充: 程序存在问题: (1) follow集不能处理:U->xVyVz的情况 (2) 因本人偷懒,本程序为加入文法判断,故 输入的文法必须为LL(1)文法 (3) 您可以帮忙扩充:消除左递归,提取公因子等函数 (4) …… */ /*-----------------------------------------------*/ /*参考书《计算机编译原理——编译程序构造实践》 LL(1)语法分析,例1: ERTWF# +*()i# 文法G[E]:(按此格式输入) 1 E -> TR 2 R -> +TR 3 R -> 4 T -> FW 5 W -> * FW 6 W -> 7 F -> (E) 8 F -> i 分析例句:i*(i)# , i+i# 例2: 编译书5.6例题1 SHMA# adbe# S->aH H->aMd H->d M->Ab M-> A->aM A->e 分析例句:aaabd# */
上传时间: 2016-02-08
上传用户:ayfeixiao
编写具有如下函数原型的递归与非递归两种函数equ,负责判断数组a与b的前n个元素值是否按下标对应完全相同,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。 bool equ(int a[], int b[], int n) 提示:递归函数中可按如下方式来分解并处理问题,先判断最后一个元素是否相同,不同则返false;相同则看n是否等于1,是则返回true,否则进行递归调用(传去实参a、b与 n-1,去判断前n-1个元素的相等性),并返回递归调用的结果(与前n-1个元素的是否相等性相同)。
上传时间: 2013-12-03
上传用户:梧桐
#include<malloc.h> #include<limits.h> #include<stdio.h> #include<graphics.h> #include<io.h> #include<math.h> #include<process.h> #include<conio.h> #define m 100 #define OK 1 typedef int Status typedef char TElemType /*树元素的类型*/ int t=35 int n=20 int h=14 int u=2 int leaf=0,non_l_leaf=0,non_r_leaf=0,root=0 /*各种结点数*/ char le[m],l[m],r[m],ro[m] /*用与存放各种结点*/ typedef struct BiTNode/*定义二叉树*/
上传时间: 2013-12-15
上传用户:liansi
Matlab中没有现成的Hermite插值函数,必须编写一个M文件实现插值。 设n个节点的数据以数组x0 (已知点的横坐标), y0(函数值), y1(导数值)输入(注意Matlat的数组下标从1开始), m个插值点以数组x 输入,输出数组y 为m 个插值。编写一个名为hermite.m的M文件。
上传时间: 2013-12-01
上传用户:zhangliming420
Matlab中没有现成的Lagrange插值函数,必须编写一个M文件实现Lagrange插值。 设n个节点数据以数组x0,y0 输入(注意Matlat的数组下标从1开始),m 个插值点以数组 x输入,输出数组y 为 m个插值。 编写一个名为lagrange.m的M文件。
上传时间: 2016-06-19
上传用户:lhc9102
数据结构课设题目。一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1--m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 该程序是数一个固定的数字。有详细的注释。
标签: 数据结构
上传时间: 2016-08-11
上传用户:hn891122
维吉尼亚算法的实现,构成 明文:每个字符惟一对应一个0~25间的数字。 密钥:一个字符串,其中每个字符同明文一样对应一个数字,代表位移值,如a 表示位移 0,b 表示位移 1,c 表示位移 2,...... )。 加密过程: 将明文数字串依据密钥长度分段,并逐一与密钥数字串相加(模26),得到密文数字串; 最后,将密文数字串转换为字母串。
标签: 算法
上传时间: 2016-12-27
上传用户:ommshaggar
编写具有如下函数原型的递归与非递归两种函数equ,负责判断数组a与b的前n个元素值是否按下标对应完全相同,是则返回true,否则返回false。并编制主函数对它们进行调用,以验证其正确性。 bool equ(int a[], int b[], int n) 提示:递归函数中可按如下方式来分解并处理问题,先判断最后一个元素是否相同,不同则返false;相同则看n是否等于1,是则返回true,否则进行递归调用(传去实参a、b与 n-1,去判断前n-1个元素的相等性),并返回递归调用的结果(与前n-1个元素的是否相等性相同)。
上传时间: 2014-01-18
上传用户:love1314
给出一个非负小数,找出分子不超过M,分母不超过N的最简分数或整数, 使其最接近给出的小数。如果这个分数不唯一,输出‘TOO MANY’。 输入文件格式(closest.in) 第一行,M,N(1<=M,N<=10^9) 第二行,即小数R,(0<R 输出文件格式(closest.out) 仅一行,若解唯一输出 分子 / 分母(整数K写成K/1),否则输出TOO MANY 样例输入: 360 120 3.1415926536 样例输出: 355/113
标签:
上传时间: 2017-01-08
上传用户:iswlkje
本题要完成的是一组简单C表达的运算。所有表达式存放在文件 CExpression.txt 中,每个表达式一行。每行的长度不会超过80个字符。文件最后有一个空行表示结束。 每个表达式,只包含简单的整数变量和限定的一些操作符,表达式中没有常量。总共有26个可能出现在表达式中的变量,分别命名为 a,b,...,z。每个变量最多出现一次。26个变量的初值分别为1,2,...,26。 表达式中的操作符,包括:两个二元操作符 +, -,表示加,减运算。例如,表达式a+c-d+b(即1+3-4+2)的结果为2。 单独一个-号不能放在变量前面,表示负数。 表达式中还包含两个一元运算符:++,--,表示加一和减一运算。它们既可以出现在一个变量的前面、也可以出现在后面。如果出现在变量前面,则表示先对变量进行加一/减一运算,然后变量值参与表达式计算。如果出现在变量后面,则表示变量的原值参与表达式计算,表达式计算完之后,变量值加一/减一。 例如,表达式 -- c + b-- 的结果为 4, 表达式计算完之后, b,c的值分别为1,2 输出格式要求:输出直接显示在屏幕上。对于每个表达式,第一行输出表达式的内容。第二行输出表达式的值,后面几行输出参与运算的各个变量的结果值。
标签: CExpression txt 运算 表达式
上传时间: 2017-01-17
上传用户:cjf0304