编译原理实验二
实验二:语法分析实验目的实现算术表达式的语法分析器
实验内容1、PL/0文法:
在词法规则基础上,引入一组非终结符和产生式集合构成PL/0语言的上下文无关文法。
VN = { program, block, statement, condition, expression, term, factor }
其中:program 为开始符号;
VT = { ident, number, "const", "var", "procedure", "call", "begin", "end", "if", "then", "while", "do", "odd", ".", ",", "=", ";", ":=", "# ...
VMware安装Ubuntu20.04
VMwarePRO17安装Ubuntu22.04(含旧版本换源)(22.04版本安装时地区选择上海之后,开机默认就是中国内地的镜像源服务器,速度很快)
VMware和Ubuntu22.04的下载VMware下载链接:VMware下载链接
Ubuntu下载链接:Ubuntu20.04
VMware安装Ubuntu打开VMware点击创建新虚拟机
选择稍后安装操作系统,下一步
客户机操作系统选择Linux,版本选择Ubuntu64位,接着下一步
虚拟机名称根据自己的喜好取,位置建议放到非C盘
根据自己的电脑的配置选择虚拟机的处理器和内核数量
内存也是根据自己的电脑配置选择(我的是16GB),继续下一步
网络选择NAT模式,继续下一步
控制器类型和虚拟磁盘类型分别选择LSI Logic(L)和**SCSI(S)**,继续下一步
选择创建新虚拟磁盘,下一步,
磁盘大小根据自己电脑配置和自己的需要选择,选择将虚拟磁盘拆分成多个文件,继续下一步
直接下一步,选择自定义硬件
选择CD/DVD,点使用ISO映像文件,浏览选择你的镜像路径,点击确定
点击开启此虚 ...
编译原理实验一
实验一:词法分析实验目的实现PL/0语言的词法分析器
实验内容PL/0语言的单词结构关键字(共11个):空格分隔列表如下
1begin end if then while do const var call procedure odd
标识符:字母序列,最大长度10,不能与上述关键字相同
常数:整型常数
算符和界符(14个):空格分隔列表如下
1\+ - * / = # < > := ( ) , . ;
单词种类的划分标识符 :作为一种
常数 :作为一种
算符和界符 :每种作为一个单独种别
关键字 :每个作为一个单独种别
PL/0的语言的词法分析器将要完成以下工作(1) 跳过分隔符(如空格,回车,制表符);
(2) 识别诸如begin,end,if,while等关键字;
(3) 识别非关键字的一般标识符。
(4) 识别常数数字序列。
(5) 识别前面列出的单字符操作符和:=双字符特殊符号。
词法分析器的实现形式建议把词法分析器设计成一个独立子程序,运行一次产生一个单词符号
词法分析器的输出形式( ...
数字图像处理
图像的表示与描述内容:对纹理图像集利用灰度共生矩阵的二次统计量特征和最近邻法进行分类,其中每类纹理图像有8幅,总共64幅,每幅图像的大小为200x200。实验中将各类纹理图像样本按数量随机等分成两部分作为训练样本集和测试样本集,按照这种方式运行10 次对结果求平均分类正确率。观察不同的灰度共生矩阵对分类正确率的影响。
步骤:(1)新建程序文件(2)编写程序如下123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960percent=[];%正确率数组for n=1:10train=[];test=[];index=0;%测试集下标for i=1:8 P=randperm(8);%随机序列 for j=1:4 train{i,j}=strcat(int2str(i),int2str(P(j)),'.jpg');%训练集 end for j=5:8 ...
Python
入门练习Fibonacci斐波那契数列问题描述:Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。输入格式:输入包含一个整数n。输出格式:输出一行,包含一个整数,表示Fn除以10007的余数。
样例输入:10样例输出:55样例输入:22样例输出:7704数据规模与约定:1 <= n <= 1,000,000。
1234567n = int(input())F1, F2 = 1, 1for i in range(3, n+1): F1, F2 = F2 % 10007, (F1+F2) % 10007 print(F1, F2)print(F2)# 先用递归计算斐波那契数列的值再取余数会超时
圆的面积问题描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。
123 ...