计算机基础程序结构

计算机基础程序结构

ID:40817711

大小:600.60 KB

页数:77页

时间:2019-08-08

计算机基础程序结构_第1页
计算机基础程序结构_第2页
计算机基础程序结构_第3页
计算机基础程序结构_第4页
计算机基础程序结构_第5页
资源描述:

《计算机基础程序结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章结构化程序设计和控制结构结构化程序设计上个世纪六十年代末,结构化程序设计,软件发展的一个重要的里程碑。结构化程序设计的思路将一个描述复杂的问题,系统地分解成足够小的和可管理的单元/模块,从而最终可以编写成可以正确执行的程序。因为该机制是将一个大规模的工作,系统地分解为更小的单元/模块,因此也被称为“系统分解”。4-2系统分解系统分解实际上是执行任务的过程,即:对于一个工作单元,将它分解成一组更小的单元,而这组单元可以执行与大单元相同的任务。这种思想实际就是:从一个大的、复杂的任务开始,逐步将

2、之分解到非常小的单元,对于这些小单元来说,是很容易编写出程序来执行的。既然该过程是一步一步被应用,而每一步都是将一个相对复杂的任务精炼成一组更简单的子任务,那么这种过程也可以称为“逐步求精”。4-3三种结构:顺序,条件,重复系统分解思想使用三种基本的控制结构来分解一个大规模的任务,这三种基本结构是:顺序,条件和重复。4-4顺序结构顺序结构,就是将一个指定的任务分解成两个子任务,一个接着一个。也就是说,当执行完第一个子任务之后再继续执行下一个子任务——而从第二个子任务返回第一个子任务的情况永远不会发

3、生。长度单位换算的问题4-5执行第1部分(b)顺序执行第2部分条件结构条件结构,又称判定结构,根据条件的不同每次只执行两个子任务中的其中一个。当条件为真时,执行某一个子任务,若为假则执行另一个。任何一个子任务都可以为空,也就是说,它可以“什么都不做”。但不管结果如何,当正确的子任务执行完后,程序始终向前行进,永远不会回头去再次测试条件。4-6子任务1(c)条件子任务2测试条件真假重复结构重复结构,又称循环结构,只要条件为真就需要将某一个子任务多次执行时就将使用这种程序结构。当条件为真,执行这一子任

4、务;子任务执行结束后,回头再次检测条件是否为真。只要被测试的条件为真,程序就会继续执行这一相同子任务。一旦条件不为真,程序就向前行进。4-7子任务(d)重复测试条件真假4-8控制结构条件ifif-elseswitch重复whilefordo-while4-9ifif(condition) action;conditionactionTFCondition,一个C表达式,TRUE(non-zero)或FALSE(zero).Action,一条C语句,简单语句或复合语句.4-10示例if(x<=10)

5、 y=x*x+5;if(x<=10){ y=x*x+5; z=(2*y)/3; }if(x<=10) y=x*x+5;z=(2*y)/3;复合语句;如果x<=10,都执行如果x<=10,执行第一条;第二条语句总会执行换行和缩进风格if语句通行的换行和缩进风格。这样的编程风格使得阅读该段代码的人能够很快的识别出如果条件成立将被执行的部分。请记住,风格只是增强了代码的可读性,并不影响程序的执行。4-114-12更多示例if(temperature<=0)printf("Atorbelowfreezin

6、gpoint.");if(key==‘K’)numK++;if(month==4

7、

8、month==6

9、

10、month==9

11、

12、month==11)printf("Themonthhas30days");4-13常见错误if(18<=age<=25)/*此条件总是为真*/num++;if(x=2)/*此条件总是为真*/y=3;/*变量y总会被赋值为3*/4-14if嵌套if(x==3) if(y!=6){ z=z+1; w=w+2;}if((x==3)&&(y!=6)){ z=z+1; w=w

13、+2; }等价于4-15if-elseif(condition) action_if; else action_else;conditionaction_ifaction_elseTF示例if(temperature<=0)printf("Atorbelowfreeingpoint.");elseprintf("Abovefreezing.");等价于if(temperature<=0)printf("Atorbelowfreezingpoint.");if(temperature>0

14、)printf("Abovefreeing.");4-16示例if(x){y++;z--;}else{y--;z++;}4-17成绩等级换算——级联的if-else#includeintmain(){chargrade;/*成绩等级*//*获得输入值*/printf(“Enterthegrade:”);scanf("%c",&grade);/*执行换算*/if(grade==‘A’)printf("90~100");elseif(grade==‘B’)pr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。