实验一:词法分析程序一、实验目的   通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的类型码及单词符号的自身值。
(遇到错误时可显示“Error”,然后跳过错误部分继续显示)二、实验要求用C或C++写一个简单的词法分析程序,程序可以满足下列要求:1、能分析如下几种简单的语言词法(1)标识符:ID=letter(letter|digit)*(2)关键字(全部小写)mainintfloatdoublecharifthenelseswitchcasebreakcontinuewhiledofor(3)整型常量:NUM=digitdigit*(4)运算符=+-*/=25整型常量11;26+13(27-14)28*15?29/16:303、词法分析程序实现的功能输入:单词序列(以文件方式提供),输出识别的单词的二元组序列到文件和屏幕输出:二元组构成:(syn,token或sum)其中:syn为单词的种别码token为存放的单词自身符号串sum为整型常数例:源程序:intab;
floatef=20;
ab=10+ef;
输出:(保留字--1,int)(标识符--10,ab)(分号--26,;)(保留字--2,float)(标识符--10,ef)(等号--17,=)(整数--11,20)(分号--26,;)(标识符--10,ab)(等号--17,=)(整数--11,10)(加号--13,+)(标识符--10,ef)(分号--26,;)4、自己准备测试数据存放于TestData.txt文件中,测试数据中应覆盖有以上5种数据,测试结果要求以原数据与结果对照的方式输出并保存在Result.txt中,同时要把结果输出到屏幕。
5、提前准备① 实验前,先编制好程序,上机时输入并调试程序。
准备好多组测试数据(存放于文件TestData.txt中)。
6、写出实验报告 报告格式:要求有实验名称、实验目的、实验要求、实验内容、实验小结。
其中实验内容包括算法分析、程序流程图及程序代码。
2023/2/21 22:09:07 7KB 词法分析 源代码
1
欧拉计划(欧拉计划)算法练习部分,目录分类一塌糊涂,我也不打算好好整理了,就这么乱吧解的题有欧拉计划,ZOJ(这破网站最近登不上了)目录树.├──classical_clangc言语算法练习│  ├──array动态数组│  ├──avlavlu树│  ├──balance_check平衡检察│  ├──bigint大数实现│  ├──binary_heap二插堆│  ├──bloom_filter布隆过滤器│  ├──bst二叉查找树│  ├──bucket_sort.c筒排序│  ├──chinese_num│  ├──d_heapd堆│  ├──disjoinset并查集│  ├──double_queue双端链│  ├──factor因数分解│  ├──farey_series法力序列│  ├──fft.c傅里叶变换│  ├──gcd.c欧几里得算法│  ├──genetic_algorithm遗传算法│  ├──goog
2023/2/16 17:44:35 3.83MB algorithm elixir data-structure clang
1
一、数据分析项目介绍1. 项目所需的模块库介绍pandas用法:需要导入以下模块importnumpyasnpimportpandasaspdfrompandasimportSeries,Dataframe2.项目背景介绍互联网电影资料库(InternetMovieDatabase,简称IMDB)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。
电影作为艺术和娱乐载体已成为我们生活中的一部分,作为电影爱好者之一,希望通过分析了解电影市场大体情况,以便于以后选择电影观看。
使用的数据是IMDB美国票房排名前1000的电影数据,数据包含了电影名称,票房金额,上映年份,演职人员,IMDB评分,电影类型等信息,数据中的很多电影大家也比较熟悉。
相信不少人都有这样的经历,当想要看一部电影的时候,会去百度一下谁是导演,谁是主演。
如果导演是克里斯托弗•诺兰,心里已经给电影打了个8分以上的评分了。
而阿汤哥的动作片,预期也都能肾上腺素飙升。
对于已上映的电影,不少人会去豆瓣搜索现时的评分,或是前作的评价,若是豆瓣高分、高评论数,也会按奈不住去蹭下热度。
如果要去电影院观看的话,想必不少人会更倾向选择动作片或者科幻大片这类特效丰富,影音冲击强烈的电影。
近几年特效技术和3D动画的日渐成熟,影院观影已经是越来越多人的第一选择。
IMDB的资料中包括了影片的众多信息、演员、片长、内容介绍、分级、评论等。
对于电影的评分目前使用最多的就是IMDB评分。
截至2018年6月21日,IMDB共收录了4,734,693部作品资料以及8,702,001名人物资料。
3.项目所需数据介绍数据的属性包括:电影名称、评论数、评分、导演、上映时间、上映国家、主要演员、语言、IMDB评分等。
理解数据:color、director_name、num_critic_for_reviews、duration、director_facebook_likes、actor_3_facebook_likes、actor_2_name、actor_1_facebook_likes、gross、genres、actor_1_name、movie_title、num_voted_users、cast_total_facebook_likes、actor_3_name、facenumber_in_poster、plot_keywords、movie_imdb_link、num_user_for_reviews、language、country、content_rating、budget、title_year、actor_2_facebook_likes、imdb_score、aspect_ratio、movie_facebook_likes4.项目功能详细介绍显示电影评分分布的情况;
电影数量与平均分年度变化的情况;
评论家评论数与评分的关系;
评分与电影票房的关系;
电影数量大于5前提下平均分前十的导演推荐的数据;
不同电影类型的年份累计分析;
电影时长的分布及时长能否和评分有相关性;
电影时长的分布及时长能否和评分有相关性。
二、数据分析过程1.主要功能实现的类和方法介绍#清洗runtime电影时长列数据,可使用str.split()方法df['runtime']=df['runtime'].str.split('').str.get(0).astype(int)df['runtime'].head()#清洗year列,使用str[:]选取年份数字并转换成int类型,使用df.unique()方法检查数据df['year']=df['year'].str[-5:-1].astype(int)df['year'].unique()2. 数据分析过程代码和解释说明导入包:导入、查看、清洗数据:评分分布图:电影数量与平均分布年度变化:评论家评论数&评分、评分&票房:电影数量大于5平均分前十的导演:统计不同年份、不同类型电影的数量:cumsum=df.groupby(['main_genre','year']).title.count()#使用累加功能统计1980年起不同年份不同电影类型的累计数量,对于中间出现的缺失值,使用前值填充genre_cumsum=cumsum.unstack(level=0).cumsum().ffill()#只选取总数量大于
2023/1/19 6:32:34 459KB 数据分析
1
单据打印二维码的功能,用法如下:1.复制附件中的那2个DLL到使用的文件夹下面。
qrdecode.dllqrencode.dll2.导入对象n_qrcode_prtobj.sru3.调用:n_qrcode_prtobjluo_qrcode_prtobjluo_qrcode_prtobj=createn_qrcode_prtobj--gwts.ipnt.of_printset(ls_printobj,adw_print)luo_qrcode_prtobj.vf_set_barcode_bypb(dw_print)/*设置打印条码:二维码*/--gwts.ipnt.of_print(dw_print)destroyluo_qrcode_prtobj4.调整数据窗口根据需要自行调整数据窗口,方法一:在数据窗口中加一图片pictureobject,名为:p_barcode,在tag属性中填上条码列的colname例如条码值为:配药单号execnote_num在数据窗口dw_zss2_printtpd中数据源中添加op_execnote.execnote_num,对应的数据窗口列名改为execnote_num,再在数据窗口中添加一pictureobject,name属性中填入p_barcode,tag属性中填入execnote_num.方法二:在数据窗口中的sql中加一字段,名为:p_filename,计算表达式为:''asp_filename--共100个空格,再在数据窗口中加一计算列,名为:p_bitmapfilename,计算表达式为:bitmap(p_filename),tag属性中填上条码列的colname方法一适用于数据窗口中的条码值不变的情况,例如执行单号方法二适用于数据窗口中的条码值有变化的情况,例如组号.计划单号等
2023/1/15 3:42:58 489KB pb
1
#defineGRID_NUM11 //棋盘行数,其中1..9为棋的坐标,其他为边界#defineGRID_COUNT81 //可放棋子总数#defineBLACK 1 //黑棋 黑白棋转换时,可对求异或#defineWHITE 2 //白棋#defineBORDER 3 //边界#defineNOSTONE 0 //空子无棋#defineMCMAX 10000 //蒙特卡洛次数typedefstruct_stoneposition{ charx; chary; int score;}SMove; //招法char board[GRID_NUM][GRID_NUM]; //棋盘表示char chessColor;
//本人棋的颜色SMove bestMove; //最优棋
2017/11/7 17:43:15 2.22MB 源程序 围棋 计算机博弈
1
自定义语言C--的词法系统1)类型系统:支持int、char、void基本类型,分别用词法记号表示为关键字int、char和void。
2)常量:字符常量(用单引号括起来)、字符串常量(用双引号括起来)、八/十/六进制整数常量(0开头表示八进制,0x开头表示十六进制)。
分别用词法记号表示为ch、str和num。
3)变量:与常量对应,使用标识符表示,词法记号表示为id。
4)表达式运算符:支持加减乘除、求余、取负、自增、自减算术运算,大于、大于等于、小于、小于等于、等于、不等于关系运算,与、或、非逻辑运算,表示为词法记号:‘+’,‘-’,‘*’,‘/’,‘%’,‘-’,‘++’,‘--’,‘>’,‘>=’,‘<’,‘<=’,‘==’,‘!=’,‘&&’,‘||’,‘!’。
注意:取负运算和减法运算在词法分析器里是被看做是同一个词法记号。
5)语句:支持赋值语句、do-while、while、for循环语句,if-else、switch-case条件分之语句、函数调用、函数返回、跳转等语句。
涉及的词法记号表示为赋值号‘=’,关键字do,while,for,if,else,switch,case,default,return,break,continue。
语句和函数体要求用大括号括起来,case和default后面需要跟冒号,因而需要包括各种分界符作为词法记号:‘{’,‘}’,‘;’,‘:’,‘(’,‘)’,‘,’。
2022/12/4 4:20:21 56KB 词法分析 编译原理 Lex实现
1
识别结果大概是这样{'result':{'face_num':1,'face_list':[{'quality':{'occlusion':{'right_eye':0,'left_cheek':0.1459853947,'right_cheek':0.05144193396,'left_eye':0.465408802,'mouth':0.02919708006,'chin_contour':0.01420217194,'nose':0},'illumination':116,'blur':7.266304692e-06,'completeness':1},'age':22,'face_token':'dc6f8f9df5d977ea476e2d04acdf5063','race':{'type':'white','probability':0.6173604727},'glasses':{'type':'common','probability':0.9834988713},'gender':{'type':'male','probability':0.655915916},'face_probability':0.9185044169,'beauty':51.21487427,'angle':{'roll':-2.750922441,'yaw':28.97134399,'pitch':5.202290535},'location':{'height':65,'top':112.0704803,'width':76,'left':76.20765686,'rotation':-4},'face_type':{'type':'human','probability':0.9992217422},'face_shape':{'type':'oval','probability':0.4419156313},'expression':{'type':'none','probability':0.9999142885}}]},'error_msg':'SUCCESS','timestamp':1537413754,'cached':0,'error_code':0,'log_id':9465840013520}年龄:22颜值:51.21487427表情-type(none:不笑;
smile:微笑;
laugh:大笑):none表情-probability(表情置信度,范围【0~1】,0最小、1最大):0.9999142885脸型-type(square:正方形triangle:三角形oval:椭圆heart:心形round:圆形):oval脸型-probability(置信度,范围【0~1】,代表这是人脸形状判断正确的概率,0最小、1最大):0.4419156313性别-type(male:男性female:女性):male性别-probability(性别置信度,范围【0~1】,0代表概率最小、1代表最大。
):0.655915916能否带眼镜-type(none:无眼镜,common:普通眼镜,sun:墨镜):common能否带眼镜-probability(眼镜置信度,范围【0~1】,0代表概率最小、1代表最大。
):0.9834988713人种-type(yellow:黄种人white:白种人black:黑种人arabs:阿拉伯人):white人种-probability(人种置信度,范围【0~1】,0代表概率最小、1代表最大。
):0.6173604727真实人脸/卡通人脸-type(human:真实人脸cartoon:卡通人脸):human真实人脸/卡通人脸-probability(人脸类型判断正确的置信度,范围【0~1】,0代表概率最小、1代表最大。
):0.9992217422
2015/7/3 8:12:32 3KB python3.5 百度ai 人脸识别
1
在计算loss的时候,最常见的一句话就是tf.nn.softmax_cross_entropy_with_logits,那么它到底是怎么做的呢?首先明确一点,loss是代价值,也就是我们要最小化的值tf.nn.softmax_cross_entropy_with_logits(logits,labels,name=None)除去name参数用以指定该操作的name,与方法有关的一共两个参数:第一个参数logits:就是神经网络最初一层的输出,如果有batch的话,它的大小就是[batchsize,num_classes],单样本的话,大小就是num_classes第二个参数lab
2022/11/6 0:04:08 56KB .so c cros
1
多分类损失函数label.shape:[batch_size];pred.shape:[batch_size,num_classes]运用tf.keras.losses.sparse_categorical_crossentropy(y_true,y_pred,from_logits=False,axis=-1)–y_true真实值,y_pred预测值–from_logits,我的理解是,如果预测结果经过了softmax(单次预测结果满足和为1)就运用设为`False`,  如果预测结果未经过softmax就设为`True`.pred=tf.c
2022/11/5 23:53:30 37KB ens fl flow
1
一:实验内容:编写语法分析程序,实现对算术表达式的语法分析,要求所分析的算术表达式由如下的文法产生。
◆E->E+T|E-T|T◆T->T*F|T/F|F◆F->id|(E)|num二:实验要求:在对表达式进行分析的同时,输出所采用的产生式。
可以采用多种方法◆编写递归调用程序,实现自顶向下的分析。
◆编写LL(1)语法分析程序,要求:◇编程实现算法4.2,为给定的文法自动构造预测分析表◇编程实现算法4.1,构造LL(1)预测分析程序,◆编写语法分析程序,实现自底向上的分析,要求:◇构造识别一切活前缀的DFA◇构造LR分析表◇编程实现算法4.3,构造LR分析程序◆利用yacc自动生成语法分析程序,调用LEX自动生成的词法分析器程序
2015/6/11 23:58:37 664KB 语法分析 实验报告 LL(1) LR
1
共 71 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡