《C语言程序设计》课件-项目五循环结构程序设计(任务三do-while语句)-专业案例实操_第1页
《C语言程序设计》课件-项目五循环结构程序设计(任务三do-while语句)-专业案例实操_第2页
《C语言程序设计》课件-项目五循环结构程序设计(任务三do-while语句)-专业案例实操_第3页
《C语言程序设计》课件-项目五循环结构程序设计(任务三do-while语句)-专业案例实操_第4页
《C语言程序设计》课件-项目五循环结构程序设计(任务三do-while语句)-专业案例实操_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计项目五

循环结构程序设计任务三

do—while语句专业案例实操C语言程序设计5.3do—while语句:

5.3.1专业案例实操

案例1:变频器频率校准(核心场景)工业需求:

(1)变频器目标频率50Hz,允许误差≤0.5Hz;(2)必须先校准一次频率,再判断误差是否超标;(3)超标则重复校准,直到达标;(4)输出每次校准的次数、实际频率、误差。任务三do—while语句专业案例实操5.3do—while语句:

5.3.2专业案例实操

程序代码1:#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){//初始化条件floattarget_freq=50.0;//目标频率floatactual_freq;//实际校准频率floaterror;//频率误差intcount=0;//校准次数任务三do—while语句专业案例实操srand((unsignedint)time(NULL));//初始化随机数(模拟校准误差)printf("变频器频率校准启动(目标:50.0Hz,误差允许≤0.5Hz)\n");//do-while循环:先校准,后判断do{count++;//校准次数+1(至少执行1次)//模拟校准后实际频率(49~51Hz随机值,保留1位小数)actual_freq=49+(rand()%21)/10.0;//计算误差(取绝对值)error=actual_freq-target_freq;5.3do—while语句:

5.3.2专业案例实操

程序代码2:if(error<0)error=-error;//输出本次校准结果printf("第%d次校准→实际频率:%.1fHz,误差:%.1fHz\n",count,actual_freq,error);//模拟校准间隔(工业场景中的操作延时)for(inti=0;i<50000000;i++);}while(error>0.5);//误差>0.5Hz则重复校准//循环终止:校准达标printf("✅校准完成!最终频率:%.1fHz,误差≤0.5Hz\n",actual_freq);return0;}任务三do—while语句专业案例实操5.3do—while语句:

5.3.2专业案例实操

本案例程序代码运行结果:任务三do—while语句专业案例实操运行示例结果:变频器频率校准启动(目标:50.0Hz,误差允许≤0.5Hz)

第1次校准→实际频率:49.2Hz,误差:0.8Hz第2次校准→实际频率:49.7Hz,误差:0.3Hz✅校准完成!最终频率:49.7Hz,误差≤0.5Hz5.3do—while语句:

5.3.1专业案例实操

参考代码:#include<stdlib.h>#include<time.h>intmain(){//初始化条件intcheck_times=0;//自检次数intvoltage_ok,current_ok,temp_ok;//1=正常,0=异常srand((unsignedint)time(NULL));printf("设备上电自检启动(最多3次自检)\n");do{check_times++;printf("\n=====第%d次自检=====\n",check_times);//模拟参数检测(随机生成0/1)voltage_ok=rand()%2;//电压检测任务三do—while语句专业案例实操current_ok=rand()%2;//电流检测temp_ok=rand()%2;//温度检测//输出自检结果printf("电压检测:%s\n",voltage_ok?"正常":"异常");printf("电流检测:%s\n",current_ok?"正常":"异常");printf("温度检测:%s\n",temp_ok?"正常":"异常");//模拟自检间隔for(inti=0;i<30000000;i++);//循环终止条件:自检通过或达到3次}while((voltage_ok==0||current_ok==0||temp_ok==0)&&check_times<3);//最终判断if(voltage_ok&¤t_ok&&temp_ok){printf("\n✅自检通过!设备正常启动\n");}else{printf("\n❌自检失败(已尝试3次)!设备停机\n");}return0;}5.3do—while语句:

5.3.1专业案例实操

案例2:设备上电自检(工业必做流程)工业需求:(1)设备上电后必须先执行一次自检(检测电压、电流、温度);(2)若自检不通过(任意参数异常),则重复自检,最多重复3次;(3)3次仍不通过则输出“自检失败,停机”,否则输出“自检通过,启动设备”。任务三do—while语句专业案例实操5.3do—while语句:

5.3.2专业案例实操

do-while与while循环的核心对比任务三do—while语句专业案例实操特性do-while循环while循环电气应用场景执行顺序先执行循环体,后判断条件先判断条件,后执行循环体-执行次数至少1次可能0次-语法关键末尾必须加分号无分号-适配场景必须先执行的操作(校准、自检)无需先执行的持续监测(电流巡检)do-while:变频器校准、设备自检;while:电机参数巡检5.3do—while语句:

5.3.2专业案例实操

五、高频易错点与工业规范1.必踩坑点(标注优先级)任务三do—while语句专业案例实操错误类型示例后果修正方案末尾漏分号do{...}while(error>0.5)编译报错牢记}while(条件);末尾加;混淆循环条件while(error=0.5)(赋值)条件永远为真,死循环区分=(赋值)和>/<(判断)无更新条件do{printf("校准中");}while(error>0.5)死循环,设备失控循环体内必须更新error等判断变量忽略“最多执行次数”无限制重复校准工业中设备无限自检增加次数限制(如check_times<3)5.3do—while语句:

5.3.2专业案例实操

五、高频易错点与工业规范1.必踩坑点(标注优先级)任务三do—while语句专业案例实操错误类型示例后果修正方案末尾漏分号do{...}while(error>0.5)编译报错牢记}while(条件);末尾加;混淆循环条件while(error=0.5)(赋值)条件永远为真,死循环区分=(赋值)和>/<(判断)无更新条件do{printf("校准中");}while(error>0.5)死循环,设备失控循环体内必须更新error等判断变量忽略“最多执行次数”无限制重复校准工业中设备无限自检增加次数限制(如check_times<3)

5.3.2专业案例实操

2.工业编程规范(1)do-while仅用于“必须先执行”的场景(校准、自检、首次采集),不滥用;(2)循环体即使只有1行代码,也必须用{}包裹(工业代码要求可读性);(3)避免无限制循环:即使是“必须先执行”的场景,也要设置最大重复次数(如自检最多3次),防止死循环;(4)浮点型条件判断(如error>0.5),建议用范围判断(error>0.49&&error<0.51),规避浮点精度问题。任务三do—while语句专业案例实操

5.3.2专业案例实操

核心总结(1)do-while循环的核心是“先执行、后判断”,循环体至少执行1次,适配电气场景中“必须先操作”的需求(校准、自检

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论