版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能小车C语言程序控制秦磊
梁爽
主编第六章
制作小夜灯目录CONTENTS1选择语句2相关案例介绍6.1PARTONE选择语句6.1.1基本if语句
基本if语句的格式如下:if(表达式){语句1;语句2;…语句n;}基本if语句的执行过程。(1)首先对if后面括号里的表达式进行判断。(2)如果表达式的值为真或者非0,则执行表达式后面的语句1至语句n。(3)如果表达式的值为假或者0,则跳过if语句执行下一条语句。行业PPT模板/hangye/(1)“if(表达式)”后面没有分号。(2)if语句中的表达式可以是关系表达式、逻辑表达式或数值表达式。(3)如果大括号中只有一条语句,那么大括号可以省略,本书建议不要省略大括号。小贴士【例6-1-1】打开C语言编译器,输入下列代码。行业PPT模板/hangye/程序运行结果【例6-1-2】从键盘输入两个整数,按照由大到小的顺序输出这两个数。行业PPT模板/hangye/程序运行结果【例6-1-3】输入三个数a、b、c,要求按由小到大的顺序输出这三个数。行业PPT模板/hangye/程序运行结果行业PPT模板/hangye/
输入一个字符,判断它是否为大写字母,若是则将其转换成小写字母,若不是则不转换,然后输出最后得到的字符。练一练6.1.2if-else语句基本if语句是单分支选择结构,if-else语句是双分支选择结构。在双分支选择结构中,if语句对表达式进行判断,当表达式的值为真时执行if后面的语句1至语句n,为假则执行else后面的语句1至语句n,格式如右边所示:if(表达式){ 语句1; 语句2; … 语句n;}else{ 语句1; 语句2; … 语句n;}行业PPT模板/hangye/(1)在if-else语句中,如果if或else后面只有一条语句,那么可以省略大括号。(2)在C语言中“==”是关系运算符,而“=”表示赋值,如a=0表示将0赋给a,而a==0表示a的值是否为0的布尔运算。小贴士【例6-1-4】用键盘输入一个数字,如果输入的数字为0,就显示“你好”,否则显示“hello”。行业PPT模板/hangye/程序运行结果【例6-1-5】用键盘输入当前温度,如果大于或等于30℃就提示开启空调,如果小于30℃则提示不开启空调。行业PPT模板/hangye/程序运行结果【例6-1-6】小明跟着妈妈去逛超市,总共花费m元,小明给了超市收银员n元,请问超市收银员需要给小明找多少零钱,请设计一个程序帮助小明。行业PPT模板/hangye/程序运行结果拓展行业PPT模板/hangye/通过键盘输入两个数a和b,输出两个数中较大的数。程序如下:拓展行业PPT模板/hangye/能不能用条件表达式将上述程序简化一下呢?简化后的程序如下:拓展行业PPT模板/hangye/下面的语句和语句max=(a>b)?a:b;等效。if(a>b){ max=a;}else{max=b;}条件表达式的一般形式如下:表达式1?表达式2:表达式3如果表达式1成立就执行表达式2,否则执行表达式3。行业PPT模板/hangye/
请编写一个程序,从键盘输入一个整数,判断该数是否为偶数。练一练6.1.3嵌套if语句如果程序的逻辑判断关系比较复杂,可以采用嵌套if语句,即在if语句中又包含一个或多个if语句,其一般形式如右所示:if(表达式){ if(表达式){ 语句块} else{ 语句块}}else{ if(表达式){ 语句块} else{ 语句块}}【例6-1-7】有一个函数y=
,要求编写一个程序,输入一个自变量整数x,程序输出一个因变量y。行业PPT模板/hangye/程序运行结果【例6-1-8】在一个房间中如果传感器采集到的温度大于或等于30℃,并且房间内有人,则提示空调打开,否则提示空调关闭。注意:在程序中输入0表示无人,输入其他数字表示有人,采集的温度为人工模拟输入温度。行业PPT模板/hangye/程序运行结果拓展行业PPT模板/hangye/图2-6-10和图2-6-11中的两个程序功能相同,都是实现对输入的三个数进行升序排列。在编写程序时应尽量实现单出口,以便后续程序调用其中的变量。行业PPT模板/hangye/
小贴士
在嵌套if语句中,每个else与离它最近且没有其他else与之对应的if相配对,如果if与else的数目不一样,可以加大括号来确定配对关系。建议在if或else后面使用大括号,即使只有一条语句。
练一练
从键盘输入两个数a和b,编写一个程序判断a与b的关系(大于、小于、等于)。
6.1.4if-else-if语句采用嵌套if语句是为了实现多分支选择,但程序结构不够清晰,所以一般情况下较少使用if语句的嵌套结构,而使用if-else-if语句来实现多分支选择。【例6-1-9】有一个函数y=
,要求编写一个程序,输入一个自变量整数x,程序输出一个因变量y。行业PPT模板/hangye/程序运行结果【例6-1-10】根据温度判断天气舒适度。行业PPT模板/hangye/程序运行结果拓展行业PPT模板/hangye/if-else-if语句解决了if嵌套语句中代码编排的问题和多出口问题。为了保证程序结构清晰,通常提倡将程序写成锯齿形式,复杂的if嵌套语句会导致代码往右缩进严重,不便于屏幕显示,而级联if语句可以让代码更好地适应屏幕要求,让程序更便于阅读。拓展行业PPT模板/hangye/if-else-if的级联if语句和并列if语句的结果不同。如图2-6-14和图2-6-15所示,这两个程序的运行结果不一样。两个程序的不同之处就是图2-6-15所示程序把第二次和第三次的if判断换成了else-if判断。这两个程序都没有编译错误,但是图2-6-14所示程序能正确输出排列结果,而图2-6-15所示程序输出结果如图2-6-16所示,这是因为它的第二次判断是在第一次判断的基础上进行的,第二次判断的条件是a<=b且a>c,执行完此次判断后a<=b且a<=c,第三次判断是在a<=b且a<=c的基础上比较b和c的大小,执行完结果是a<=b、a<=c且b<=c,但是这个程序对a>b这种情况没有进行判断,所以会出现图2-6-16所示的情况,即只比较了a和b的大小。拓展行业PPT模板/hangye/行业PPT模板/hangye/
小贴士
级联if语句中else-if中的else也是if语句的一部分,它与离它最近且没有其他else与之对应的if相配对。
练一练
编写一个程序实现从键盘输入一个整数,判断输入的整数是正整数、负整数还是零。
6.1.5switch语句多分支选择结构使用if-else-if语句时,程序显得复杂冗长,可读性较差,所以C语言提供了另外一种用于多分支选择的语句—switch语句,它能使程序变得简洁。switch语句的一般形式如下:switch(表达式){ case常量1:语句1;break; case常量2:语句2;break; … case常量n:语句n;break; default:语句n+1;}6.1.5switch语句switch后面的表达式是选择条件,可以是单个变量,也可以是变量组合成的表达式,其最终的结果必须是一个整数。大括号内的所有内容是switch语句的主体,包含多个case分支,判断值必须是常量,case分支根据判断值标识条件的入口。可以将switch语句看成一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case分支。在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行下面的case分支,直至遇到break,或者switch语句结束为止。【例6-1-11】根据输入的月份显示该月份对应的英文。行业PPT模板/hangye/程序运行结果【例6-1-12】请编写程序,由键盘输入成绩的等级,该程序能够根据成绩的等级输出百分制分数段,A等为90分以上,B等为80~89分,C等为70~79分,D等为60~69分,E等为60分以下。行业PPT模板/hangye/程序运行结果行业PPT模板/hangye/
小贴士
(1)switch后面表达式的结果只能是整数。case后面的常量可以是常数,也可以是常数计算的表达式。(2)在每个case后面带一个break才能跳出switch选择结构,否则会执行下一条case语句。
行业PPT模板/hangye/
小贴士
switch语句的执行过程如下。(1)首先计算“表达式”的值,假设为a。(2)从第一个case开始,比较“常量1”和a,如果“常量1”和a不相等,就跳过冒号后面的“语句1”,继续比较第二个case、第三个case等。如果它们相等,就执行冒号后面的语句,一旦遇到break,就跳出switch语句。假设a和“常量5”相等,那么就会从“语句5”一直执行到“语句n+1”。(3)如果直到“常量n”都没有找到相等的数值,那么就执行default后的“语句n+1”。
练一练
请用switch语句编写一个程序,根据用户输入的驾照类型,输出他可以驾驶的车辆类型。
6.1.6选择结构的应用项目案例数字猜猜猜小游戏是一个经典小游戏,在本文中,猜数字小游戏主要的功能如下所示:1、登入猜数字小游戏系统,显示小时欢迎界面。2、用户猜的数字有系统随机在1-30之间生成。3、用户可以有5次机会猜这个随机生成的数字。4、若用户猜大了,则系统会显示猜大了,并提示还有多少猜数字的机会。5、若5次都没有猜中系统随机生成的数字,则游戏结束。该游戏首先定义select变量,根据用户输入的值,给变量select赋值,根据输入的select值,进入switch分支语句进行判断实现开始游戏或退出游戏选择。使用if-else-if语句实现游戏猜测判断以及剩余次数提醒。}6.2PARTTWO相关案例介绍6.2.1用计算机指令控制LED本案例通过控制计算机输入的指令来控制LED的亮灭。硬件清单如下:(1)Arduino开发板1块。(2)发光二极管1个。(3)限流电阻1个。本案例的实物连接图如图2-6-19所示。6.2.1用计算机指令控制LED6.2.2用按键控制LED本案例用一个按键控制一个LED,用选择语句编写程序。按键属于开关量(数字量)元件,按下时为闭合(导通)状态。本案例要用到的硬件清单如下:(1)Arduino开发板1块。(2)按键1个。(3)发光二极管1个。(4)限流电阻1个(配合发光二极管使用,本案例使用330Ω电阻)。(5)限流电阻1个(配合按键使用,本案例使用10kΩ电阻)。(6)面包板1块。(7)面包板导线若干。将按键接到开发板7号引脚,LED接到开发板11号引脚,按图2-6-23连接好电路。6.2.2用按键控制LED6.2.2用按键控制LED6.2.2用按键控制LED6.2.3制作神奇小夜灯本案例主要介绍如何利用Arduino开发板制作神奇小夜灯。这个小夜灯神奇在何处呢?它能自动感应光线,只有光线暗淡时才会亮起。本案例中用LED模拟小夜灯。如图2-6-27所示,光线充足时LED不亮。如图2-6-28所示,用笔帽对光敏电阻进行遮挡,模拟光线暗淡的情况,这时LED点亮。6.2.3制作神奇小夜灯本案例需要的硬件清单如下:(1)Arduino开发板1块。(2)发光二极管1个。(3)限流电阻1个(配合LED使用,本案例使用330电阻)。(4)面包板1块。(5)面包板导线若干。(6)5528光敏电阻1个。(7)分压电阻1个(10k,配合5528光敏电阻使用)。6.2.3制作神奇小夜灯6.2.3制作神奇小夜灯行业PPT模板/hangye/
串口通信属于异步串行通信,串行通信是将数据按位在一条传输线上依次传输,每一位为1或0。在本章Arduino案例中使用USB线建立串口连接。波特率是指一个设备在一秒钟内发送(或接收)了多少比特的数据,它反映了设备发送(或接收)数据的快慢。为了保证串行通信顺利进行,数据发送方发送数据的速率与数据接收方接收数据的速率要保持一致。串口通信的常用函数如下:(1)Serial.begin(speed)用于开启通信接口并设置波特率,比如Serial.begin(9600)是指将通信接口波特率设置为9600。speed表示波特率,一般选择9600。(2)Serial.available(void)用于判断串口缓冲器是否有数据输入。(3)Serial.read(void)用于读取串口数据。(4)Serial.print(val)用于写入字符串数据到串口,val表示要打印的数据。(5)Serial.println(val)用于写入字符串数据+换行到串口,val表示要打印的数据。
拓展行业PPT模板/hangye/
(1)在本章的三个案例中,数字接口和模拟接口可以根据需要进行更改。(2)案例中的按键有四个引脚,两两相通,安装时应注意方向问题。
小贴士1.器材准备(1)首先识读电路,选择所需的电路元件,记录其型号、规格、数量。逐个检验各个元件规格和质量是否正确合格。填写表2-6-1。(2)把检测好的器材整齐地放在工作台上,准备下一步安装接线。
6.2.4任务实施及效果2.职业素养在任务实施过程中能够按照操作规范进行文明生产,任务实施过程中的,填写表2-6-2。
6.2.4任务实施及效果3.电路的安装按照实例中的电路原理图和实物接线图在接线板上布置元件并安装接线。并填写表2-6-3。
6.2.4任务实施
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度婚庆司仪婚礼现场化妆造型服务合同6篇
- 人教版初中历史与社会七年级上册 2.1.2 海洋对人类的影响说课稿及反思
- 人教版七年级历史与社会上册 2.2《自然黄静》之气象万千、风光迥异 说课稿
- 2025版快递业务数据处理与信息安全保密合同2篇
- 湖北省黄冈市普通高中2024-2025学年高二上学期11月阶段性联考语文试卷(含答案)
- 2025年环保设施安装与运营服务合同3篇
- 湖北恩施市2024-2025学年九年级上学期语文期末考试题卷(含答案)
- 河南省南阳市(2024年-2025年小学六年级语文)统编版小升初模拟(上学期)试卷及答案
- 2025高考数学二轮复习-微培优7 数列中的情境创新与数学文化【课件】
- Unit 7 第3课时 Section B (1a-2b)2024-2025学年新教材七年级英语上册同步说课稿(人教版2024)河北专版
- 翻译美学理论
- 15J403-1-楼梯栏杆栏板(一)
- 中国传统乐器萧介绍
- 2024届华中师范大学新高三第一次联考试题
- 小学食堂食品添加剂管理制度
- 职业技术学院汽车专业人才需求调研报告
- 第3章《物态变化》大单元教学设计- 2023-2024学年人教版八年级物理上册
- 领导对述职报告的点评词
- DL∕T 5210.4-2018 电力建设施工质量验收规程 第4部分:热工仪表及控制装置
- YYT 0661-2017 外科植入物 半结晶型聚丙交酯聚合物和共聚物树脂
- HG+20231-2014化学工业建设项目试车规范
评论
0/150
提交评论