第三次上机—语法分析1目的:熟练掌握自上而下的语法分析方法,并能用C++程序实现。
要求:1.使用的文法如下: E®TE¢ E¢®+TE¢|e T®FT¢ T¢®*FT¢|e F®(E)|id2.对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。
3.要有一定的错误处理功能。
即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。
可以参考书上介绍的同步记号集合来处理。
可能的出错情况:idid*id,id**id,(id+id,+id*+id……4.输入串以#结尾,输出推导过程中使用到的产生式。
例如:输入:id+id*id#输出:E®TE¢T®FT¢F®idE¢®+TE¢T®FT¢……如果输入串有错误,则在输出中要体现是跳过输入串的某些记号了,还是弹栈,弹出某个非终结符或者是终结符了,同时给出相应的出错提示信息。
比如:idid*id对应的出错信息是:“输入串跳过记号id,用户多输入了一个id”;
id**id对应的出错信息是:“弹栈,弹出非终结符F,用户少输入了一个id”(id+id对应的出错信息是:“弹栈,弹出终结符),用户少输入了一个右括号(或者说,括号不匹配)”有余力的同学可进一步考虑如下扩展:1. 将递归下降方法和非递归预测分析方法都实现2. 在语法分析的过程中调用第二次上机的结果,即利用词法分析器来返回一个记号给语法分析器。
3. 编写First和Follow函数,实现其求解过程。
测试文法:A->BCDEB->aBA|εC->F|εD->b|c|εE->e|εF->d|ε
2023/9/19 0:58:21 10KB 递归 LL(1) 自上而下
1
任务:建立一个简单的学生信息管理系统,该系统为注册学生保存基本信息、选课信息以及课程成绩。
系统要方便基本信息、选课信息、成绩的增加、删除、修改及查询。
为实现快速查询,要求对基本信息、选课信息和成绩建立相应的索引,学生成绩采用平衡二叉树建索引,对学生姓名采用Hash建立索引,对学号实现折半查找。
要求:1) 可以按成绩高低输出所有成绩;
2) 可以按区间段查询成绩;
3) 可以按区间段统计成绩。
4) 可以按成绩、姓名、学号等信息查询。
5) 二叉树的各种操作要求写出递归和非递归两种方式。
红黑树,HASH,跳跃表,链表
2023/9/15 4:36:51 58KB C++ MFC 学生成绩管理系统
1
高清英文PDF版。
DSL领域的丰碑之作,软件开发“教父”MartinFowler历时多年的心血结晶,ThoughtWorks中国翻译。
  全面详尽地讲解各种DSL及其构造方式,揭示与编程语言无关的通用原则和模式,阐释如何通过DSL有效提高开发人员的生产力以及增进与领域专家的有效沟通。
《领域特定语言》是dsl领域的丰碑之作,由世界级软件开发大师和软件开发“教父”martinfowler历时多年写作而成,thoughtworks中国翻译。
全面详尽地讲解了各种dsl及其构造方式,揭示了与编程语言无关的通用原则和模式,阐释了如何通过dsl有效提高开发人员的生产力以及增进与领域专家的有效沟通,能为开发人员选择和使用dsl提供有效的决策依据和指导方法。
  全书共57章,分为六个部分:第一部分介绍了什么是dsl,dsl的用途,如何实现外部ds和内部dsl,如何生成代码,语言工作台的使用方法;
第二部分介绍了各种dsl,分别讲述了语义模型、符号表、语境变量、构造型生成器、宏和通知的工作原理和使用场景;
第三部分分别揭示分隔符指导翻译、语法指导翻译、bnf、易于正则表达式表的词法分析器、递归下降法词法分析器、解析器组合子、解析器生成器、树的构建、嵌入式语法翻译、内嵌解释器、外加代码等;
第四部分介绍了表达式生成器、函数序列、嵌套函数、方法级联、对象范围、闭包、嵌套闭包、标注、解析数操作、类符号表、文本润色、字面量扩展的工作原理和使用场景;
第五部分介绍了适应性模型、决策表、依赖网络、产生式规则系统、状态机等计算模型的工作原理和使用场景;
第六部分介绍了基于转换器的代码生成、模板化的生成器、嵌入助手、基于模型的代码生成、无视模型的代码生成和代沟等内容。
2023/9/14 16:33:38 5.53MB 领域特定语言
1
作  者:徐子珊著出版社:人民邮电出版社ISBN:9787115228376出版时间:2010-06-01版  次:1页  数:409装  帧:平装开  本:16开国内算法界著名学者、计算理论学组组长朱洪教授推荐。
  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
《算法设计、分析与实现从入门到精通:C、C++和Java》还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
《算法设计、分析与实现从入门到精通:C、C++和Java》插图也精美,如Hanoi塔图等,都给《算法设计、分析与实现从入门到精通:C、C++和Java》增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  38个经典范例,包括渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法、线性规划算法和计算几何等算法设计和实现技巧。
  26个国际大学生程序设计竞赛真题的详细解析及算法的应用。
  3种主流语言(C、C++和Java)实现算法范例程序。
内容简介  《算法设计、分析与实现从入门到精通:C、C++和Java》第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
《算法设计、分析与实现从入门到精通:C、C++和Java》第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  《算法设计、分析与实现从入门到精通:C、C++和Java》特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照《算法设计、分析与实现从入门到精通:C、C++和Java》在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
目录第1章集腋成裘——渐增型算法11.1算法设计与分析11.2插入排序算法41.2.1算法描述与分析41.2.2程序实现61.2.3应用——赢得舞伴301.3两个有序序列的合并算法321.3.1算法描述与分析321.3.2程序实现341.4序列的划分451.4.1算法描述与分析451.4.2程序实现461.5小结52第2章化整为零——分治算法532.1Hanoi塔问题与递归算法532.1.1算法的描述与分析532.1.2程序实现562.1.3应用——新Hanoi塔游戏592.2归并排序算法622.2.1算法描述与分析622.2.2程序实现632.2.3应用——让舞伴更开心692.3快速排序算法702.3.1算法描述与分析702.3.2程序实现722.4堆的实现792.4.1堆的概念及其创建792.4.2程序实现832.5堆排序882.5.1算法描述与分析882.5.2程序实现892.6基于二叉堆的优先队列942.6.1算法描述与分析942.6.2程序实现952.7关于排序算法1052.7.1比较型排序算法的时间复杂度1052.7.2C/C++/Java提供的排序函数(方法)1072.7.3应用——环法自行车赛1082.8小结109第3章记表备查——动态规划算法1113.1矩阵链乘法1123.1.1算法描述与分析1123.1.2程序实现1153.1.3应用——牛牛玩牌1213.2最长公共子序列1233.2.1算法描述与分析1233.2.2程序实现1263.2.3算法的应用1323.30-1背包问题1363.3.1算法描述与分析1363.3.2程序实现1383.3.3算法的应用1423.4带权有向图中任意两点间的最短路径1443.4.1算法描述与分析1
2023/9/13 5:28:44 41.66MB 算法设计 C C++和JAVA
1
此是系统辨识的试验程序及实验报告,包括系统辨识的各方法程序,即批处理,最小二乘,递退最小二乘,窗函数等,调试通过,欢迎下载!
2023/9/8 9:52:57 325KB 系统辨识 实验 最小二乘法 源程序
1
16进制10进制.txt32.txtasm.txtCrctable.txtC标志符命名源程序.txterre.txterre2.txtff.txtfor循环的.txtlist.logN皇后问题回溯算法.txtping.txtre.txtsource.txtwinsock2.txtww.txt万年历.txt万年历的算法.txt乘方函数桃子猴.txt乘法矩阵.txt二分查找1.txt二分查找2.txt二叉排序树.txt二叉树.txt二叉树实例.txt二进制数.txt二进制数2.txt余弦曲线.txt余弦直线.txt傻瓜递归.txt冒泡排序.txt冒泡法改进.txt动态计算网络最长最短路线.txt十五人排序.txt单循环链表.txt单词倒转.txt单链表.txt单链表1.txt单链表2.txt单链表倒序.txt单链表的处理全集.txt双链表正排序.txt反出字符.txt叠代整除.txt各种排序法.txt哈夫曼算法.txt哈慢树.txt四分砝码.txt四塔1.txt
2023/9/8 6:21:24 213KB 经典数据结构
1
汉诺塔的演示过程,运用递归调用,C语言课程设计
2023/9/8 1:03:19 29KB 汉诺塔
1
最近在leetcode上做到一个运用递归算法解决的题目。
忽然记起大一自学数据结构那段岁月。
在此拿出三年前写的老鼠走迷宫案例来进行一个简单的分析铺垫,顺便附上完整代码,关于本资源的博客地址:https://blog.csdn.net/qq_34901049/article/details/94403330
2023/9/3 20:43:54 4KB c++ 走迷宫 回溯算法
1
1.发现错误并改错。
给出一个实现插入排序的程序,文件名为InsertionSort.java,该文件中有代码错误,请单步调试,发现错误, 并改正错误,提示:只有一行程序有错误,所以只能修改代码中的某一行程序。
要求演示在eclipse开发环境下单步调试程序,如果没有eclipse开发环境,也可以使用其它集成开发环境,但是必须演示调试能力。
2.请编写程序输出13/17小数点后第100位的数字是几?考察循环和除法运算以及模运算(求余数运算)。
请补齐FractionalDigit.java文件中的代码 3.请编写程序,分别使用循环和递归两种方法计算斐波那契数列第9项是几? 斐波那契数列的第1项为1,第2项为1,后续任意项的值为其前两项的和。
请补齐Fibo.java文件中的代码 4.实现Array类中的indexOf函数;
阅读Node.java和SingleLinkedList.java两个关于单链表的类, 实现SingleLinkedList类中的indexOf函数;
5.阅读Node.java和SingleLinkedList.java类,利用它们来实现栈和双向队列功能,请阅读Stack.java 和Deque.java(双向队列),请实现Stack类中的pop函数,请实现Deque.java中的removeLast函数。
6.利用前面的Stack.java和Deque.java类,实现下面问题的求解: 队列中有从1到7(由小到大排列)的7个整数,问经过一个整数栈后,出栈的所有排列数有多少? 如果整数栈的容量是4(栈最多能容纳4个整数),那么出栈的排列数又是多少?(百度查询卡特兰数) 请补齐Catalan.java文件中的代码 7.八皇后问题。
在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、 同一列或同一斜线上,问有多少种摆法。
该程序代码在EightQueens.java文件中,请将voidplace(intn)函数 中未完成的代码补齐,并写出运行结果。
禁止修改其他代码。
8.学生排序。
给出4名同学,请按照学生的年龄排序,然后输出学生的学号和姓名。
具体代码见Student.java文件, 请实现sort函数。
并运行该程序。
9.二叉排序树检索。
BstNode.java和BinarySortTree.java是关于二叉排序树的程序文件,请阅读这两个程序文件,请实现contains函数,并运行该程序。
10.BASE64编码转换问题。
请百度百科查询base64编码,实现将二进制字节数据编码转换为base64的字符串数据,以及将base64字符串转换回二进制字节数据。
禁止使用JDK自带的Base64转换程序以及Apache开源网站上的程序,必须自己编写代码来实现BASE64编码和解码函数。
可以为该类添加其他数据成员和函数成员。
2023/9/1 23:15:20 28KB Java
1
Kaggle-M5-预测精度我对M5预测准确性的Kaggle竞赛的解决方案比赛首页探索性数据分析包括EDA笔记本,其中突出显示了数据发现特征工程与建模最重要的功能是滞后功能,由滞后,滚动窗口和对销售和价格的汇总功能的组合创建。
使用LightGBM执行建模。
超参数调整是通过3倍时间序列交叉验证完成的。
推理最终预测(接下来28天的单位销售额)是通过递归推断进行的。
结果我的最终提交在5500多个团队中排名前3%,并为我赢得了银牌!
2023/8/27 11:46:21 2.91MB JupyterNotebook
1
共 404 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡