定义、表达式、赋值、条件(if-else、switch)、循环语句(for、while、do-while)、符号表、二维数组JavaCC实现词法分析、语法分析、语义分析
1
//***************************************************voidSingle_Write_HMC5883(ucharREG_Address,ucharREG_data){HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(REG_Address);//内部寄存器地址,请参考中文pdfHMC5883_SendByte(REG_data);//内部寄存器数据,请参考中文pdfHMC5883_Stop();//发送停止信号}//********单字节读取内部寄存器*************************ucharSingle_Read_HMC5883(ucharREG_Address){ucharREG_data;HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(REG_Address);//发送存储单元地址,从0开始HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress+1);//发送设备地址+读信号REG_data=HMC5883_RecvByte();//读出寄存器数据HMC5883_SendACK(1);HMC5883_Stop();//停止信号returnREG_data;}//******************************************************////连续读出HMC5883内部角度数据,地址范围0x3~0x5////******************************************************voidMultiple_read_HMC5883(void){uchari;HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(0x03);//发送存储单元地址,从0x3开始HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress+1);//发送设备地址+读信号for(i=0;i<6;i++)//连续读取6个地址数据,存储中BUF{BUF[i]=HMC5883_RecvByte();//BUF[0]存储数据if(i==5){HMC5883_SendACK(1);//最后一个数据需要回NOACK}else{HMC5883_SendACK(0);//回应ACK}}HMC5883_Stop();//停止信号Delay5ms();}//初始化HMC5883,根据需要请参考pdf进行修改****voidInit_HMC5883(){Single_Write_HMC5883(0x02,0x00);//}
2024/2/2 6:29:11 73KB HMC5883L QMC5883L
1
IF-ELSE条件语句的翻译程序设计(简单优先法、输出三地址表示)
2024/2/2 6:04:15 87KB IF-ELSE
1
基于HttpHelper万能框架V2.2源码基础上,修复了cookie合并的问题,以及ssl基础连接已关闭的问题。
作者你为什么要举报我?1,cookie修复internalstaticstringGetMergeCookie(stringoldCookie,stringnewCookie){if(!string.IsNullOrEmpty(oldCookie)&&!string.IsNullOrEmpty(newCookie)){if(oldCookie==newCookie)returnoldCookie;else{ListOld=newList(oldCookie.Split(';'));ListNew=newList(newCookie.Split(';'));foreach(stringninNew){foreach(stringoinOld){if(o==n||o.Split('=')[0]==n.Split('=')[0]){Old.Remove(o);break;}}}Listlist=newList(Old);list.AddRange(New);StringBuildersb=newStringBuilder();foreach(varsinlist){if(s!=""){sb.Append(s).Append(";");}}returnsb.ToString();}}elseif(!string.IsNullOrEmpty(oldCookie)){returnoldCookie;}elseif(!string.IsNullOrEmpty(newCookie)){returnnewCookie;}else{return"";}}2,ssl修复ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls|SecurityProtocolType.Ssl3|(SecurityProtocolType)3072|(SecurityProtocolType)192|(SecurityProtocolType)768;
2024/1/27 13:20:42 345KB HttpHe
1
#includesbitpwm=P3^7;sbitjia=P3^0;sbitjian=P3^5;sbitled=P3^2;chartt0,zkb;voidinit();voidmain(){ init(); while(1) { if(jia) { ysms(80); if(jia) { zkb--; if(zkb8) { zkb=8; } while(jian); } } if(zkb==8) { TR0=0; pwm=1; } else { TR0=1; } }}voidinit(){ P3M1=0X21; //00100001P350SHURU TMOD=0X01; TH0=0XFF; //6MHZ100uS TL0=0XCE; ET0=1; EA=1; TR0=1; zkb=8; led=0; ysms(200); led=1; ysms(200); led=0; ysms(200); led=1; ysms(200); led=0; ysms(200); led=1; ysms(200); led=0;}voidtime0()interrupt1{ tt0++; if(tt0>zkb) { pwm=0; } if(tt0>8) { tt0=0; pwm=1; } TH0=0XFF; //6MHZ100uS TL0=0XCE;}
2024/1/16 4:54:28 956B STC单片机触摸C程序
1
C语言教程(原书第4版)《c语言教程(原书第4版)》是一本优秀的c程序设计语言教材,完整描述了ansic语言及其语法特性,并对c语言的高级特性和应用作了深入阐述,介绍了从c到c++和java过渡的相关知识。
《c语言教程(原书第4版)》的一个鲜明特色就是结合大量示例描述c语言的重要特征,并对很多工作代码给出了逐步的分析,以这种独特的教学方法向读者解释新接触的编程元素及一些惯用法。
  《c语言教程(原书第4版)》系统、完整,可作为c语言的参考手册,也非常适合作为学习c语言的入门和高级课程教材。
前言第0章从零开始0.1为什么要用c0.2ansic标准0.3从c到c++0.4从c和c++到java第1章c语言概述1.1编程和预备知识1.2程序输出1.3变量、表达式和赋值1.4使用#define和#include1.5使用printf()和scanf()1.6控制流1.7函数1.8数组、字符串和指针1.8.1数组1.8.2字符串1.8.3指针1.9文件1.10与操作系统有关的内容1.10.1编写和运行c程序1.10.2中断程序1.10.3输入文件尾标志1.10.4输入和输出的重定向1.11总结1.12练习第2章词法元素、操作符和c系统2.1字符和词法元素2.2语法规则2.3注释2.4关键字2.5标识符2.6常量2.7字符串常量2.8操作符和标点符号2.9操作符的优先级和结合性2.10增值操作符和减值操作符2.11赋值操作符2.12例子:计算2的乘方2.13c系统2.13.1预处理器2.13.2标准函数库2.14总结2.15练习第3章基本数据类型3.1声明、表达式和赋值3.2基本数据类型3.3字符和char数据类型3.4int数据类型3.5整数类型short、long和unsigned3.6浮点类型3.7typedef的用法3.8sizeof操作符3.9使用getchar()和putchar()3.10数学函数3.10.1使用abs()和fabs()3.10.2unix和数学函数库3.11隐式类型转换和强制类型转换3.11.1整型提升3.11.2寻常算术转换3.11.3强制类型转换3.12十六进制和八进制常量3.13总结3.14练习第4章控制流4.1关系操作符、相等操作符和逻辑操作符4.2关系操作符和表达式4.3相等操作符和表达式4.4逻辑操作符和表达式4.5复合语句4.6表达式和空语句4.7if和if-else语句4.8while语句4.9for语句4.10例子:布尔变量4.11逗号操作符4.12do语句4.13例子:斐波那契数4.14goto语句4.15break和continue语句4.16switch语句4.17条件操作符4.18总结4.19练习第5章函数5.1函数定义5.2return语句5.3函数原型5.4例子:创建乘方表5.5从编译器的角度观察函数原型5.6函数定义顺序的另一种风格5.7函数调用和传值调用5.8开发大型程序5.9使用断言5.10作用域规则5.10.1平行和嵌套代码块5.10.2以调试为目的使用代码块5.11存储类型5.11.1auto存储类型5.11.2extern存储类型5.11.3register存储类型5.11.4static存储类型5.12静态外部变量5.13默认初始化5.14递归5.15例子:汉诺塔5.16总结5.17练习第6章数组、指针和字符串6.1一维数组6.1.1初始化6.1.2下标6.2指针6.3传引用调用6.4数组和指针之间的关系6.5指针运算和元素的大小6.6数组作为函数的实参6.7例子:冒泡排序6.8用calloc()和malloc()进行动态内存分配6.9例子:归并和归并排序6.10字符串6.11标准函数库中的字符串处理函数6.12多维数组6.12.1二维数组6.12.2存储映射函数6.12.3形式参数声明6.12.4三维数组6.12.5初始化6.12.6使用typedef6.13指针数组6.14main()函数的参数6.15不规则数组6.16函数作为参数6.17例子:使用二分法寻找函数的根6.18函数指针数组6.19类型限定符const和v
2024/1/4 10:17:32 16.68MB C语言 教程 pdf
1
intmain(void){u16t;u16len;u16times=0;delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200);//串口初始化为115200LED_Init();//LED端口初始化KEY_Init();//初始化与按键连接的硬件接口while(1){if(USART_RX_STA&0x8000;){len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度printf("\r\n您发送的消息为:\r\n\r\n");for(t=0;t<len;t++){USART_SendData(USART1,USART_RX_BUF[t]);//向串口1发送数据while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束}printf("\r\n\r\n");//插入换行USART_RX_STA=0;}else{times++;if(times0==0)printf("请输入数据,以回车键结束\n");if(times0==0)LED0=!LED0;//闪烁LED,提示系统正在运行.delay_ms(10);}}}
2023/12/16 20:02:36 1.99MB STM32 UART
1
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Configuration;namespacePhoneBook{publicpartialclassfrmMain:Form{publicfrmMain(){InitializeComponent();}privatestringstrConn=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];privatevoidfrmMain_Load(objectsender,EventArgse){LoadGroup();if(trvGroup.Nodes.Count>0){trvGroup.SelectedNode=trvGroup.Nodes[0];LoadList();}else{lvContact.Clear();}}privatevoidLoadGroup(){try{trvGroup.Nodes.Clear();SqlConnectionconn=newSqlConnection(strConn);SqlCommandcmd=newSqlCommand();cmd.Connection=conn;cmd.CommandText="selectdistinct组别from联系人where用户名='"+tsslUserName.Text+"'";conn.Open();SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){trvGroup.Nodes.Add(sdr[0].ToString());}sdr.Close();conn.Close();}catch{}}privatevoidLoadList(){if(trvGroup.Nodes.Count==0){lvContact.Clear();return;}if(trvGroup.SelectedNode.Index>=0){stringstrGroup=trvGroup.SelectedNode.Text;try{lvContact.Clear();lvContact.Columns.Add("姓名",100);lvContact.Columns.Add("工作
2023/12/9 9:50:34 1.54MB C# 管理系统
1
编译器设计Lexer编译器的词法分析器负责识别每个语法标记。
我们定义一个用于描述Lexer的类。
该类具有2个数据属性:一个传递给他的单词,一个表示单词位置的整数。
最初的位置是0,从单词的开头开始。
classLexer{privatereadonlystringtext;privateintposition;}在Lexer类中,我们有构造函数,可在其中初始化属性。
publicLexer(stringtext){this.text=text;this.position=0;}我们基于类的当前position属性添加了一些其他属性,例如获取当前字符。
我们需要if-else块来检测文件结束,如果是,
2023/12/3 10:05:22 188KB C#
1
IF-ELSE条件语句的翻译程序设计(LL(1)法、输出四元式)
2023/12/1 20:44:47 417KB IF-ELSE LL(1)法 输出四元式
1
共 58 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡