AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计

上传人:E**** 文档编号:89188999 上传时间:2019-05-21 格式:PPT 页数:55 大小:1.09MB
返回 下载 相关 举报
AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计_第1页
第1页 / 共55页
AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计_第2页
第2页 / 共55页
AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计_第3页
第3页 / 共55页
AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计_第4页
第4页 / 共55页
AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计》由会员分享,可在线阅读,更多相关《AT mega系列单片机原理及应用--C语言教程 教学课件 ppt 作者 海涛 第7章 ATmega C 语言设计(55页珍藏版)》请在金锄头文库上搜索。

1、ATmega 单片机原理及应用 C语言教程 第7章 ATmega C语言实用程序控制流,主讲:海涛,广西大学电气工程学院,内容提要,C语言的程序控制流程可以分为3种基本结构,即顺序结构、选择结构和循环结构。通过这3种基本的程序结构可以构成各种复杂的程序。本章将主要介绍这些基本程序结构的语句实现,包括if语句、switch语句、while语句和for语句的语法格式和语意内容,以及各语句在程序控制中的应用,并为后面章节的学习打好基础。,7.1 C语言的结构化程序设计,C语言是一种结构化的编程语言。从程序流程的角度来看,结构化的程序包含3种基本结构,即顺序结构、选择结构和循环结构。这3种基本的程序结

2、构又可以相互组合、嵌套,从而构成各种复杂程序。,1、顺序结构,顺序结构是一种最基本的程序结构。在这种控制结构中,程序按照程序的存放地址由低向高顺序执行。如图7.1所示,程序先执行语句1,再执行语句2,两者按顺序关系执行。,图7.1 顺序结构流程,例7.1 己知长方体的长为l,宽为w,高为h,求其体积。 源程序为: main () int l, w, h, volume; /定义变量 printf (“Please input three numbers!n“); /输入变量 scanf (“%d %d %d“, /输出l、w、h、v ,2、选择结构,选择结构使计算机具有了决策和选择的能力。如图

3、7.2所示,在选择控制结构中,程序先是对某个条件语句进行判断,如果条件为“真”,则执行语句1;如果条件为“假”,则执行语句2,语句1和语句2最后汇集到一起并从一个程序出口中退出。由选择结构的上述功能可以看出,选择语句用于对计算机的某个事件处理提供多条通道,从而使计算机具有选择控制能力。,图7.2 选择结构流程,选择结构程序的设计,需要考虑两个方面的问题。其一是条件的表达,其二是选用何种选择结构语句来实现。对于C语言来说,一般用关系表达式或逻辑表达式表示选择条件,而选择结构的实现则常用if或switch语句。,例7.2 输入两个整数,输出其中的较大值。 main() int a,b; /定义两个

4、变量a,b printf(“Please input two integers!n“); /输入两个数 scanf(“%d,%d“,&a,&b); if(ab) printf(“%dn“,a); /输出a else printf(“%d“,b); ,3、循环结构,循环结构用于重复执行一组有规律的指令集合,它可分为无条件循环和条件循环两种。由于无条件循环会导致程序的结构混乱,并使程序的可读性变低,因此,在程序设计中一般不采用无条件循环结构,本书也不再做进一步的讨论。对于条件循环结构,程序在给定条件成立时会反复执行某条语句,直至条件不再成立为止,如图5.3所示。C语言提供了for 、while等多

5、种循环语句,它们可以相互组成各种不同形式的循环结构。,图7.3循环结构的流程,C语言中的循环结构又可以分为当型循环结构和直到型循环结构。在当型循环结构中,程序首先判断循环条件,如果为“真”,则程序重复执行循环体中的语句;如果为“假”,则退出循环。在直到型循环结构中,程序首先执行的是循环体中的语句,然后再判断循环条件,如果条件为“真”,则再重复执行语句,否则就退出循环。,7.2 选择语句,选择语句用来判断给定的条件是否满足要求,并根据判断的结果选择程序的执行分支,它构成了计算机的判断决策基础,是模块化程序的重要组成部分。 C语言中常用的选择语句有:if语句和switch语句。其中if语句具有if

6、else、if和else if三种形式。,7.2.1 if 语句,1、ifelse分支 if else语句的基本结构形式为: if(表达式) 语句1: /当表达式为“真”时 else 语句2: /当表达式为“假”时 语句说明:在这种结构中,如果表达式的值为“真”,则程序执行语句1;如果表达式的值为“假”,则程序执行语句2。其执行过程如图7.4所示。,图7.4 if else语句流程,结构中的判断表达式可以为逻辑表达式或关系表达式,也可以为任意的数值类型。语句1和语句2可以是一条语句也可以是由大括号构成的复合语句。,例7.3 输入一个数,如果为2,则输出“YES”;否则输出“NO”。 main(

7、) int a; printf(“Please input one interger!n“); scanf(“%d“,&a); if(a= =2) printf(“YESn“); else printf(“NOn“); ,2、 if分支,if分支是ifelse语句的简单形式,当ifelse语句缺省else部分时,就形成了if结构的分支,其基本结构形式为: if(表达式) 语句; /当表达式为“真“时 语句说明:if分支中,如果表达式的值为“真”,则程序执行语句;如果表达式的值为“假”,则程序不执行任何操作。语句的执行流程如图7.5所示。,图7.5 i f语句流程,例7.4 输入两个整数,输出其

8、较小值。 main() int a,b; printf(“Please input two integers!n“); scanf(“%d,%d“, printf(“%d“,a ); ,3. else if分支,if else和if语句都只能提供两个分支供程序选择。但在实际应用中,两个分支往往是不够的,例如:对三分段函数,相应的处理分支也需要3个。在这种情况下,可以采用else if的多分支结构。该结构的基本形式为: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式n-1) 语句n-1; else 语句n;,语句说明

9、:else if语句为一个多分支语句。语句执行时,程序依次判断各表达式,如果表达式为“真”,则程序执行该表达式所对应的语句,随后跳出else if分支继续执行程序;如果所有的表达式均为“假”,则执行else后的语句。else if语句的执行过程如图7.6所示。,图7.6 else if 语句流程,例7.5将百分制成绩转换成优、良、中、及格和不及格5个等级。 main() int score; /定义变量 printf(“please input a scroe!n“);/输入成绩 scanf(“%d“,&score); if(0=score&score60) /判断输入的成绩 printf(“

10、Rank=%c“, E);/输出成绩等级 else if(60=score&score70) printf(“Rank=%c“, D); else if(70=score&score80) printf(“Rank=%c“, C); else if(80=score&score90) printf(“Rank=%c“, B); else printf(“Rank=%c“, A); ,说明:使用if结构还必须注意以下几点: 1、 在if语句中的表达式一般是逻辑表达式或关系表达式,但也可以是其他表达,甚至也可以是一个变量。 2、 在if语句中,判断执行分支的条件表达式必须用括号括起来,不加分号;而

11、语句之后则必须加分号。 3、 在3种形式的if语句中,分支语句为单个语句。如果要想在分支中执行多个语句,则必须用大括号括起来组成一个复合语句。,7.2.2 switch分支,ifelse语句能从两条分支中选择一条。然而很多情况下,我们希望程序从多个分支中选择一个分支来执行。虽然else if 也可实现“多选一”, 但这种实现方法的效率较低,代码量也较大。为此,C语言提供了另一种专用于多分支选择的switch语句,它的一般形式 switch(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n ; default : 语句nl; ,语句说明

12、:程序首先计算表达式的值,然后至上而下寻找与表达式的值相匹配的case关键字后面的常量表达式,如果相互匹配,程序就执行其后的语句;若表达式的值与所有case后的常量表达式均不相同时,则执行语句n+1。 当执行完某一分支语句后,程序还会继续执行后续的case语句。如果希望程序只执行一条分支,则可利用break语句跳出switch结构。,例7.6 用switch调用不同的输出。 switch(a) case 1 printf(“china”); break; case 2: printf(“is”); break; case 3: printf(“a”); break; case 4: print

13、f(“great”); break; case 5: printf(“country“);break; case 6: printf(“!”); break; default:printf(“OK“); ,说明:使用switch结构还必须注意以下几点: 1、 switch后的执行部分,必须用大括号括起来。 2、 在同一个switch结构中,不能有相同的case常量表达式出现。 3、 在case后的多个语句,可以不用大括号括起来。 4、 为实程序执行一个分支,可采用break语句来跳出switch结构的方式实现。,7.2.3 选择语句的嵌套,当一个选择语句中又包含了一个或多个选择语句时,就构成了

14、选择语句的嵌套形式。if语句和switch语句都允许嵌套,它们的嵌套格式也基本相同,因此,本书主要以if语句来说明选择语句的嵌套形式。,选择嵌套的一般形式如下: if(表达式1) if(表达式2): 语句1; else 语句2; else if(表达式3) 语句3; else 语句4;,由于if语句中的else部分是选用的,若嵌套内的语句不带else,那么这将会出现else与if匹配的问题。为解决这个问题,C语言中规定,else总是与它最近的if配对。,例7.7 输入3个数,输出最大值 main() int a,b,c; printf(“Please input two integers!n“

15、); scanf(“%d,%d“,&a,&b); if(ab) if(bc) c=a; else c=b; ,7.3 循环语句,在实际应用问题中,经常会碰到一些需要重复处理的问题,这就要求能有一种结构可使计算机循环地执行一组语句。循环结构就是这样的一种结构。其特点是,在给定判定条件为“真”时,程序反复执行某一条或某一组语句,直到判定条件为“假”。 循环结构中的循环语句一般由循环体和循环判定条件两步分组成,其中被重复执行的那部分语句被称为循环体,而循环条件则用于判断是否重复执行循环体部分。,C语言中有3条语句可实现循环功能,它们是: 1、 while语句 2、 do while语句 3、 for

16、语句 7.3.1 while语句 while语句的一般形式为: while(表达式) 语句;,语句中的表达式为循环判定,它是while循环是否继续的条件;语句为循环体,它是执行重复操作的语句。 语句说明:程序首先计算表达式的值,当值为“真”时,程序执行循环体;当值为“假”时,则终止while循环。while语句的执行过程如图7.7所示。,图7. 7 while语句流程,例7.8 求1到100的和。 main() int n=1,sum=0; while(n=100) sum=sum+n; n+; ,说明: 使用while语句应注意以下几点: 1、 while循环结构的循环判定条件在循环体之前,因此在执行循环操作之前必须先进行循环判定条件的测试,如果条件不成立,则循环体内的操作一次也不能执行。 2、 while语句中的表达式一般是关系表达或逻辑表达式,但也可以是其

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号