版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章循环结构目录CONTENTS实现循环结构的三种语句循环嵌套改变循环执行状态的语句循环结构程序设计实例5.15.25.35.4智能控制项目实践附实现循环结构的三种语句5.1while语句实现循环结构的三种语句do-while语句三种循环语句比较for语句
循环结构是结构化程序设计的基本结构之一。其特点是:在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。在C语言中可以用以下语句来实现循环:1.用while语句;2.用do--while语句;3.用for语句。你看中了一款大概要八千多元的手机,但是你家里面没有给你这个预算。现在有一种“校园贷”,如果贷10000元,签订8个月的偿还期限,日利率8‰。你觉得怎么样,想不想了解一下在8个月后需要偿还多少钱吗?引例while语句01while语句构成的循环又称为当型循环,它的一般形式为:while(表达式)
循环体语句;
语义:其中的表达式为循环控制条件,当表达式值为真(非0)时,则重复执行循环体语句,直到表达式值为假时结束循环。当第一次判断就为假时,则跳过循环体中语句,直接执行后面程序代码。while语句执行流程图整个结构执行过程是先判断后执行,因而循环体有可能一次都执行不到。while中的表达式一般为关系表达式或逻辑表达式,只要表达式的值为真(非0),即可继续循环;表达式后没有分号。无法终止的循环常被称为死循环或无限循环。如果循环体中循环表达式是一个非0值常量表达式,则构成了死循环。8注意while语句01三个要素:设置变量初始化;设置循环条件;构造循环体;一个要求:循环变量的值在循环过程中必须改变一个关系:循环中变化的量与循环变量的关系9while语句01构造循环一般考虑以下因素:例:分析下列程序段的循环次数i=1;while(i<=100)putchar(‘*’);i++;i=1;while(i<=100){putchar(‘*’);i++;}while语句01无限循环100次例:编程求,即求1+2+3+…+100#include<stdio.h>intmain(){inti,sum;
i=1;
sum=0;while(i<=100)
{sum=sum+i;i=i+1;}printf(“sum=%d\n”,sum);return0;}while语句01例5.1:输入若干个学生的“C语言”课程成绩,当输入-1时结束,并计算该课程平均分。#include"stdio.h" intmain() {
floatsum=0,score,average; intcount=0;
printf("pleaseinputscore:\n");
scanf("%f",&score);
while(score!=-1) //当输入-1时结束循环
{sum+=score; //对课程成绩进行累加count++; //学生人数+1
scanf("%f",&score);
}
average=sum/count;
printf("%d个学生的平均分是:%.2f\n",count,average);
return0; }while语句01例5.2:有一张足够大的纸,其厚度为0.1毫米,请问,将它折叠多少次之后,其厚度将超过珠穆朗玛峰的高度(珠穆朗玛峰的高度为8848.86米)?#include<stdio.h> intmain(){
floats=0.0001;inti=0;while(s<8848.86)
{ s=s*2; i+=1;
}printf("折叠%d次后超过珠穆朗玛峰的高度\n",i);return0; }while语句01用大模型了解珠穆朗玛峰例5.3:从键盘输入n,用while语句求n!#include"stdio.h" intmain() {
longfact=1;
//fact初值为1,不能为0;阶乘对应的数值范围较大,故定义为长整型
inti=1,n;
printf("pleaseinputn:");
scanf("%d",&n);
while(i<=n) //先判断后执行
{
fact*=i;
i++;
}
printf("%d!=%ld\n",n,fact);
return0; } while语句01do—while语句02do-while语句构成的循环又称为直到型循环,它的一般形式为:do
循环体语句;while(表达式);
语义:do-while循环与while循环的不同之处在于:它先执行循环体中的语句,然后再判断表达式是否为真,如果为真,则继续循环;如果为假,则终止循环。因此,do-while循环至少执行一次循环体。
do-while语句执行流程图先执行语句,后判断表达式。第一次条件为真时,while,do-while等价;第一次条件为假时,二者不同。16说明do—while语句02例5.4:编程求,即求1+2+3+…+100(用do-while实现)do-while语句02#include<stdio.h>intmain(){inti,sum;
i=1;sum=0;
do{ sum=sum+i; i=i+1;}
while(i<=100);printf(“sum=%d\n”,sum);return0;}例5.5:小明看中了一款8000多元的手机,但是他没有这个预算。他发现有一种“校园贷”,如果贷款10000元,8个月后偿还,日利率只有0.8%。他想了解一下在8个月后本金加利息共需要偿还多少钱?请编写程序实现。do-while语句02提示:本金为10000,日利息为8‰,月利息为24%19
方法一:用while语句实现
#include"stdio.h" intmain() { floatcapital=10000,interest=0.24; intmonth=1;
while
(month<=8)
{ capital*=(1+interest); month+=1; }
printf("8个月后本金加利息共%.2f元\n",capital);
return0; } do-while语句0220
方法二:用do—while语句实现
#include"stdio.h" intmain() { floatcapital=10000,interest=0.24;
intmonth=1;
do
{ capital*=(1+interest); month+=1; }
while(month<=8);
printf("8个月后本金加利息共%.2f元\n",capital);
return0; } do-while语句028个月后本金加利息共55895.07元请按任意键继续…在if语句,while语句中,表达式后面都不能加分号,而在do-while语句的“while(表达式)”后面则必须加分号。do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。21注意do—while语句02do-while和while语句相互替换时,要注意修改循环控制条件。当do和while之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。for语句03
for语句是C语言所提供的功能更强,使用更广泛的一种循环语句。它不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。for语句执行流程图for循环结构的一般形式为:for(表达式1;表达式2;表达式3)循环体语句;表达式1:用于循环开始前为循环变量设置初始值。表达式2:控制循环执行的条件,决定循环次数。表达式3:循环控制变量修改表达式。for语句03
例如:for(i=1;i<=100;i++)sum=sum+i;它相当于以下语句:
i=1;
while(i<=100){sum=sum+i;i++;
}表达式1表达式2表达式3三个表达式都可以是逗号表达式。三个表达式都是任选项,都可以省略,但要注意省略表达式后,分号间隔符不能省略。24说明for语句03(1)for语句一般形式中的“表达式1”可以省略;25for语句03for语句中表达式省略的形式
注意:如:sum=0;i=1;for(;i<=100;i++)sum=sum+i;26for语句03如:for(sum=0,i=1;;i++){if(i>100)break;sum=sum+i;}(2)表达式2省略,即不判断循环条件,循环无终止地进行下去;27for语句03如:for(sum=0,i=1;i<=100;){sum=sum+i;i++;}(3)表达式3也可以省略,但此时保证循环能正常结束;28for语句03i=1;sum=0;while(i<=100)
{sum=sum+i;i++;}相当于如:
i=1;sum=0;for(;i<=100;){sum=sum+i;i++;}
(4)可以省略表达式1和表达式3,只有表达式2;29for语句03
while(1)循环体;
即不设初值,不判断条件,循环变量不增值。无终止地执行循环体。相当于如:
for(;;)
循环体;(5)三个表达式都可省略;如:sum=0;i=1;for(;;){if(i>100)break;sum=sum+i;i++;}30for语句03(6)循环体为空语句;对for语句,循环体为空语句的一般形式为:
for(表达式1;表达式2;表达式3);如:for(sum=0,i=1;i<=100;sum+=i,i++);例5.6:编程求,即求1+2+3+…+100(改写例5.4,用for实现)for语句03基本方法:(1)在进入累加前先给累加器赋初值(一般为0);(2)用循环语句实现累加;for(循环变量赋初值;循环条件;循环变量改变规律)(3)循环体语句的设计。累加器当前值=累加器原值+循环变量当前值;属于“累加器”类型问题intmain(){inti,sum;sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("sum=%d",sum);return0;}for语句03累加器赋初值累加(1)给累乘器赋初值,一般为1;(2)用循环语句实现累乘;for(循环变量赋初值;循环条件;循环变量改变规律)(3)循环体设计。累乘器当前值=累乘器原值*循环变量当前值;33基本方法for语句03例:求累乘之积如1×2×3×...×100属于“累乘器”类型问题参考程序:intmain(){doubles=1;intk;for(k=1;k<=100;k++)s=s*k;printf("s=%lf",s);return0;}for语句03累乘器赋初值累乘整数连乘结果一定是整数,而本例中结果数值相当大,用long型都无法存放,因此将存放累乘结果的变量s定义为double型。例5.7:第33届夏季奥林匹克运动会在法国巴黎举办,请用C语言编程统计一个国家或地区在奥运会上获得的金、银、铜牌数量及总奖牌数量(假设用户会输入一个整数表示奥运会比赛的天数)。do-while语句02
intmain() {
intdays,i;//奥运会比赛的天数 intgold=0,silver=0,bronze=0,total=0;//获得的金、银、铜牌数量及总奖牌数量 intg,s,b;//每天获得的金、银、铜牌数量
printf("请输入奥运会比赛的天数:"); scanf("%d",&days);
for(i=0;i<days;i++) //循环读取每天获得的奖牌数量
{printf("请输入第%d天获得的金、银、铜牌数量(空格分隔):",i+1); scanf("%d%d%d",&g,&s,&b);
gold+=g; silver+=s; bronze+=b; total+=g+s+b; //累加到获得的总奖牌数量中 }
printf("获得的金牌数量:%d\n",gold); //输出统计结果 printf("获得的银牌数量:%d\n",silver); printf("获得的铜牌数量:%d\n",bronze); printf("获得的总奖牌数量:%d\n",total); return0;
}
f1--第一个数f2--第二个数f3--第三个数
f1=1;f2=1;f3=f1+f2;for语句03以后只要改变f1,f2的值,即可求出下一个数.f1=f2;f2=f3;f3=f1+f2;递推
112358132134558914423337761098715972584418167651094617711286574636875025121393196418317811514229832040请按任意键继续...例5.8:裴波那契数列的第1、2项分别为1、1,以后各项的值均是其前两项之和。求前30项裴波那契数参考程序:#include<stdio.h>intmain(){longf1=1,f2=1,f3;intk;printf("%ld\t%ld\t",f1,f2);for(k=3;k<=30;k++){f3=f1+f2;printf("%ld\t",f3);f1=f2;f2=f3;}return0;}for语句03注意f1、f2、f3的类型递推例5.9:计算棋盘上的麦粒。见教材P72do-while语句02 #include<stdio.h> intmain() { inti; doublet; //定义共需麦粒t立方米 doubles=0; //累加器初始化 doublen=1; //加数初始化 for(i=1;i<=64;i++) //重复64次 { s+=n; //累加 n*=2; //等同于n=n*2,在前一个n的基础上再乘2 } t=s/(1.42*100000000); //计算麦粒体积 printf("共需%.0lf立方米的麦粒!\n",t); return0; }用大模型了解棋盘上麦粒的故事,感受智慧的力量对于while和do-while循环,循环体中应包括使循环趋于结束的语句;for循环可以在表达式3中包含使循环趋于结束的操作,可以设置将循环体中的操作全部放在表达式3中。因此,for语句功能最强。用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在“表达式1”中实现循环变量的初始化。三种循环语句比较04当明确知道循环次数时,多使用for循环,这样,编程会相对简便一些。while循环、do-while循环和for循环都可以用break语句跳出循环,用continue语句结束本次循环。循环嵌套5.2
在一个循环内又完整地包含另一个循环,称为循环的嵌套,即循环体本身包含循环语句。循环嵌套嵌套在循环体内的循环体称为内循环,外面的循环称为外循环。while、do-while、for三种循环可以互相嵌套,层数不限。外层循环可包含两个以上内循环,但不能相互交叉。几种合法嵌套
(1)for(;;){…while()
{…}
…}
for和while嵌套(2)while(){…while()
{…}
…}while的嵌套(3)do{…for(;;)
{…}
…}while();do-while和for嵌套循环嵌套几种合法嵌套
(4)do{…do
{…}while()}while();do-while嵌套(5)while(){…for(;;)
{…}
…}while和for嵌套(6)for(;;){…do
{…}while()}for和do-while嵌套循环嵌套几种合法嵌套
(7)for(;;){…for(;;)
{…}}for嵌套(8)while(){…do
{…}while()}while和do-while嵌套(9)for(;;){……do{……}while();……while(){……}…...}循环嵌套例5.11:打印九九乘法表循环嵌套循环嵌套#include"stdio.h"intmain(){ inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%-2d",i,j,i*j); printf("\n");}return0; }参考程序:输出换行每行输出i个算术式,%-2d用于控制格式整数占2位,左对齐例5.10:输出右图所示图形循环嵌套
****************编程分析:采用双重循环,一行一行输出。每一行输出步骤:一般3步。(共4行,行号用k表示)1)光标定位,每行先输出4-k个空格2)输出图形每行有2*k-1个*号3)每输完一行光标换行(\n)循环嵌套#include"stdio.h"intmain(){ intk,i,j; for(k=1;k<=4;k++) {
for(i=1;i<=4-k;i++) putchar('');
for(j=1;j<=k*2-1;j++) putchar('*'); putchar('\n'); }return0;}每行输出2k-1个*号每行输出4-k个空格,实现光标定位参考程序:改变循环执行状态的语句5.3
break语句——提前结束循环continue语句——提前结束本次循环goto语句——提前终止多重循环改变循环执行状态的语句程序中的语句通常总是按顺序方向,或按语句功能所定义的方向执行的。如果需要改变程序的正常流向,可以使用改变循环执行状态的语句,使程序从其所在的位置转向另一处。常见的有:break语句——提前结束循环continue语句——提前结束本次循环goto语句——提前终止多重循环语句形式:
break;作用:break语句只能用在switch语句或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的程序。break语句——提前结束循环01break语句
expr……break;……假(0)真(非0)whiledo……break;…...expr假(0)真(非0)whilebreak语句——提前终止循环01break语句
expr2……break;…...假(0)真(非0)forexpr1expr3switchexpr语句组1break;语句组2break;语句组nbreak;语句组break;…...const1const2constndefaultcasebreak语句——提前终止循环01例5.12:求300以内能被17整除的最大的数。break语句——提前终止循环01#include"stdio.h" intmain() { intx,k;for(x=300;x>=1;x--)
if(x%17==0)break;
printf("x=%d\n",x); return0; } 找到满足条件的最大数,结束循环例5.13:输出100以内所有的素数。break语句——提前终止循环01#include<stdio.h>#include"math.h"intmain(){intn,i,k;for(n=2;n<=100;n++){k=sqrt(n);//对n开算术平方根,也可用n-1或n/2for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)
//若n不能被2~k中所有的整数整除,则n为素数
printf("%4d",n);}putchar('\n');return0;}语句形式:
continue;作用:continue语句可以结束本次循环,即不再执行循环体中continue语句之后的语句,转入下一次循环条件的判断与执行。注意:continue语句只提前结束本次的循环,并不跳出循环。continue语句——提前结束本次循环02continue语句
expr……continue;……假(0)真(非0)while真(非0)do……continue;…...expr假(0)whileexpr2……continue;…...假(0)真(非0)forexpr1expr3continue语句——提前结束本次循环02例5.14:求300以内能被17整除的所有整数。#include"stdio.h" intmain() {intx; for(x=1;x<=300;x++) { if(x%17!=0)//某一个数不能被17整除,则提前结束本次循环,不执行输出语句
continue;
printf("%d\t",x); } return0; } continue语句——提前结束本次循环02break语句与continue语句的区别break执行流程continue执行流程while(条件){语句A;break;
语句B;}
break语句
while(条件){语句A;continue;
语句B;}
continue语句至此位置
至此位置
break语句与continue语句的区别语句形式:goto语句标号;作用:功能是改变程序流程goto语句——提前终止多重循环03标号必须与goto语句同处于一个函数中,但可以不在一个循环体中。通常goto语句与if语句结合构成循环结构,当满足某一条件时,程序跳到标号处执行。功能:改变程序流程例5.15:用if和goto语句构成循环,求100以内正整数之和。#include“stdio.h”intmain(){inti,sum=0;i=1;loop:if(i<=100){sum+=i; i++;
gotoloop;}printf("%d",sum);return0;}
goto语句——提前终止多重循环03sum=0+1sum=1+2=3sum=3+3=6sum=6+4……sum=4950+100=5050循环结构程序设计实例5.4
穷举法循环结构程序设计举例递推法标记变量法迭代法
穷举法,常常也称之为枚举法。它是指在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做穷举法。
穷举法是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此穷举法是通过牺牲时间来换取答案的全面性。66穷举法01例5.16:过年了,外婆给了桐桐100元压岁钱,桐桐想把它兑换成50元、20元、10元的小钞票。请你编写程序,帮桐桐算算共有多少种兑换方案,并输出每一种兑换方案。#include<stdio.h>intmain(){inta,b,c,Count=0;for(a=0;a<=2;a++)for(b=0;b<=5;b++)for(c=0;c<=10;c++)
if(50*a+20*b+10*c==100){Count++;printf("50:%d20:%d10:%d\n",a,b,c);}printf("100元钱共有以上%d种兑换方案!\n",Count);return0;}
穷举法01方法一,假设兑换方案中50元、20元、10元的钞票张数分别是a、b、c,则:50a+20b+10c=100
共执行3×6×11=198次用大模型了解中国民俗——压岁钱#include<stdio.h>intmain(){inta,b,c,Count=0;for(a=0;a<=2;a++)for(b=0;b<=5;b++){c=(100-50*a-20*b)/10;if(c>=0)//判断是否是有效的兑换组合{Count++;printf("50:%d20:%d10:%d\n",a,b,c);}}printf("100元钱共有以上%d种兑换方案!\n",Count);return0;}穷举法01方法二,知道了a和b,可以通过公式计算c:c=(100-50×a-20×b)/10(c≥0)共执行
3×6=18次例5.17:求水仙花数。#include"stdio.h" intmain() { inti,n=0,a,b,c; for(i=100;i<=999;i++) { a=i/100; b=(i/10)%10; c=i%10; if(i==a*a*a+b*b*b+c*c*c) { n=n+1; printf("%d\t",i); } } printf("\n个数=%d\n",n); return0; }
穷举法01水仙花数是指一种三位正整数,它各位数字的立方和等于该数本身。编程将所有的水仙花数输出。并输出水仙花数的个数。
递推法是计算机数值计算中的一个重要方法,它是在已知第一项(或几项)的情况下,要求能得出后面项的值。这种方法的关键是找出递推公式和边界条件。从已知条件出发,逐步推算出要解决的问题的方法称为正推;从问题的结果出发,逐步推算出题目的已知条件,这种递推方法称为逆推。70递推法02例5.18:Fibonacci数列中兔子繁殖问题:如果第一个月有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假若兔子都不死,问n(设n为40)个月后兔子总数为多少?#include<stdio.h>intmain(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)
printf("\n");//控制输出,每行4个f1=f1+f2;//计算下一个项值,前两个月加起来赋值给第3个月
f2=f1+f2;//计算再下一个项值*/}return0;}递推法02例5.19:猴子吃桃问题:猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个;第2天早上将剩下的桃子又吃掉一半,又多吃一个。以后每天早上都吃前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子。求第一天共摘了多少个桃子?#include<stdio.h> intmain() { intday,x,y; day=9;x=1; while(day>0) { y=2*x+2; x=y; day--; } printf("\n共有%d个桃子\n",y); return0; } 递推法02逆推法:从最后一天第9天,依次向前,一直推到第1天。假定第n+1天桃子的个数为x,第n天桃子的个数为y,则y-(y/2+1)=x,即y=2*x+2。
迭代法也是计算机数值计算中的一种重要方法,这种方法是在程序中用同一个变量来存放每一次推出来的值,每次循环都执行同一条语句,给同一变量循环用新的值代替旧的值。
73迭代法03利用迭代算法时要解决的问题:确定迭代值,即从什么初值开始;确定迭代过程,即如何迭代,解决迭代的公式;确定迭代次数或条件,即到什么时候为止,分析出来用结束迭代过程的条件。例5.20:天天向上的力量。一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高千分之一,当没有好好学习时能力值相比前一天下降千分之一。每天努力和每天放任,一年后的能力值分别是多少呢?
#include<stdio.h>
#include<math.h>
intmain()
{
intday=1;
floatdayup=1.0,daydown=1.0;
while(day<=365)
{
dayup=dayup*(1+0.001);
daydown=daydown*(1-0.001);
day=day+1;
}
printf("每天努力,一年后能力值=%.2f\n",dayup);
printf("每天放任,一年后能力值=%.2f\n",daydown);
return0;
}迭代法03P77AI赋能,体会天天向上的力量
算法分析:Step1:首项可写为1/1;每项分子均为1;每项分母,等于前一项分母加2,用deno=deno+2实现,deno的初值为1。Step2:每项的符号交替变化,用sym=-sym实现,sym的初值为1(第一项为正)。Step3:根据Step1和Step2,每一项的值t=sym*1/deno,第一项的值为1。迭代法03用大模型了解祖冲之与圆周率的故事,感受古人的智慧。76#include<stdio.h>#include"math.h"intmain(){
intdeno=1,sym=1;
longcount=0;floatt=1,pi=0;
while((fabs(t))>=1E-7)/*fabs(t)表示求浮点数t的绝对值*/{pi=pi+t;
deno=deno+2;
sym=-sym;t=sym*1.0/deno;
count=count+1;}pi=pi*4;printf("pi=%10.6f\n",pi);printf(“共循环了%d次\n",count);return0;}迭代法03标记变量法04
变量标记法指的是在程序设计中用某个变量的取值来对程序运行的状态进行标记。例5.22:判断一个正整数x是否为素数。#include<stdio.h> #include"math.h" intmain() { intx,k,f=1;scanf("%d",&x); for(k=2;k<=sqrt(x);k++) if(x%k==0) {f=0;break;}
if(f==1)
printf("%disaprime",x);
else
printf("%disnotaprime",x); return0; } 设定标记变量标记变量法04如果有因子修改标记变量的值循环结构程序——
智能控制项目实践案例:智能灯光亮度调节(PWM模拟,循环+选择)要求:模拟智能灯的亮度调节:用户输入目标亮度(0-100%),程序通过“亮”“灭”的脉冲序列模拟PWM信号,亮度越高,“亮”的时间占比越高(循环5个周期直观展示)。1.输入处理:提示用户输入目标亮度:"请输入智能灯目标亮度(0-100%%):"使用scanf读取用户输入的整数值2.边界值修正:如果输入值<0,则修正为0如果输入值>100,则修正为1003.PWM参数计算:定义PWM周期为20毫秒(固定值)计算亮的时间:onTime=(pwmPeriod*brightness)/100计算灭的时间:offTime=pwmPeriod-onTime4.PWM波形输出:显示亮度信息:"亮度%d%%,PWM波形(5个周期):\n"使用for循环输出5个PWM周期每个周期显示"周期X:"(X从1开始)如果亮时间>0:输出"亮"并调用Sleep(onTime)模拟亮的时间如果灭时间>0:输出"→灭"并调用Sleep(offTime)模拟灭的时间如果灭时间=0:输出"(常亮)"(表示100%亮度)#include<stdio.h>#include<windows.h>intmain(){intbrightness;printf("请输入智能灯目标亮度(0-100%%):");scanf("%d",&brightness);if(brightness<0)brightness=0;
//选择结构:边界值修正if(brightness>100)brightness=100;intpwmPeriod=20;
//PWM周期(20毫秒)intonTime=(pwmPeriod*brightness)/100; //亮的时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南邵阳市绥宁县政务服务中心招聘见习大学生岗位工作人员1人考试备考题库及答案解析
- 世界地球日设计实施方案
- 深度解析(2026)《GBT 26039-2010无汞锌粉》(2026年)深度解析
- 深度解析(2026)《GBT 25903.1-2010信息技术 通 用多八位编码字符集 锡伯文、满文名义字符、显现字符与合体字 16点阵字型 第1部分:正白体》
- 深度解析(2026)《GBT 25828-2010高温合金棒材通 用技术条件》(2026年)深度解析
- 深度解析(2026)《GBT 25792-2010反应红W-2G(C.I.反应红84)》(2026年)深度解析
- 2026中国农业科学院第一批招聘359人备考笔试试题及答案解析
- 2026西藏那曲市慈善总会会员招募模拟笔试试题及答案解析
- 2025云南磨憨站城城市开发有限公司招聘综合行政办公人员(1人)考试备考题库及答案解析
- 2025年杭州市临安区第三人民医院招聘编外工作人员2人备考考试试题及答案解析
- 猪肉推广活动方案
- 电工职业道德课件教学
- 周杰伦介绍课件
- 学堂在线 雨课堂 学堂云 生活英语听说 期末复习题答案
- 第十四届全国交通运输行业“大象科技杯”城市轨道交通行车调度员(职工组)理论知识竞赛题库(1400道)
- 2025年希望杯IHC真题-二年级(含答案)
- T/CCT 002-2019煤化工副产工业氯化钠
- 砂石运输施工方案
- 医院如何规范服务态度
- 输液空气的栓塞及预防
- 中建钢筋工程优化技术策划指导手册 (一)
评论
0/150
提交评论