第3章程序的控制结构及结构化程序设计方法ppt课件

上传人:我*** 文档编号:148616168 上传时间:2020-10-21 格式:PPT 页数:82 大小:280KB
返回 下载 相关 举报
第3章程序的控制结构及结构化程序设计方法ppt课件_第1页
第1页 / 共82页
第3章程序的控制结构及结构化程序设计方法ppt课件_第2页
第2页 / 共82页
第3章程序的控制结构及结构化程序设计方法ppt课件_第3页
第3页 / 共82页
第3章程序的控制结构及结构化程序设计方法ppt课件_第4页
第4页 / 共82页
第3章程序的控制结构及结构化程序设计方法ppt课件_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《第3章程序的控制结构及结构化程序设计方法ppt课件》由会员分享,可在线阅读,更多相关《第3章程序的控制结构及结构化程序设计方法ppt课件(82页珍藏版)》请在金锄头文库上搜索。

1、3.1 算法与算法的表示方法 3.2 顺序结构程序设计 3.3 选择结构程序设计 3.4 循环结构程序设计,第三章 程序的控制结构与结构化程序设计方法,3.1 算法与算法的表示方法,本章主要内容: 1.了解算法的表示方法及其在程序设计中的重要地位. 2.掌握 C 语言的基本控制结构和基本控制语句. 3.掌握用 C 语言的基本控制语句进行顺序,选择和 循环结构程序的设计. 4.掌握一些常用的算法,如递推法,迭代法,穷举法等. 5.了解结构化程序设计的基本思想,算法分类: 数值运算算法:解决的是求数值解的问题。 非数值运算算法:主要解决关于分析推理、逻辑推理等 问题,如排序、查找等。,3.1.1

2、算法的概念,数据结构 + 算法 = 程序 数据结构:对数据的描述和组织形式, 算法:对操作或行为的描述,即操作步骤。,算法为解决一个具体问题而采取的确定的有限的操 作步骤。,2、控制结构:操作序列的顺序控制。 三种基本控制结构,即: 顺序结构、选择结构、循环结构。,3.1.1 算法的概念,算法的组成要素:,1、操作:各种运算。 如:算术运算、逻辑运算、关系运算等。,算法的特性: 1、有穷性:在有限的时间内,操作步骤能够终止。 2、确定性:每一步操作的含义必须明确。 3、有效性:每一步都应当能有效地进行并得到确定的结果。 4、有0个或多个输入。 5、有1个或多个输出。,3.1.1 算法的概念,例

3、1:求12345。,算法一: S1:求12 ,得2; S2:将S1得的2再乘3,得6; S3:将S2得的6再乘4,得24; S4:将24再乘5,得120,结果。,算法二: S1:p=1 S2:i=2 S3:p =pi S4:i=i+1 S5:若i5,返回S3, 否则结束,得出结果 p为5!。,比较两个算法: 算法一:繁琐,数目大时步骤太多。 算法二:利用循环算法,借助两个变量,可求任意数的阶乘,提高通用性。,3.1.2 简单算法举例,3.1.2 简单算法举例,例2: 求1+2+3+4+100,算法: S1:n=1 S2:s=0 S3:s=s+n S4:n=n+1 S5:若n 100,返回到S3

4、, 否则结束。,1+3+5+7+99 2+4+6+8+.+100,思考:,S1:n=1 S2:s=0 S3:s=s+n S4:n=n+2 S5:若n 100,返回到S3, 否则结束。,S1:n=2 S2:s=0 S3:s=s+n S4:n=n+2 S5:若n 100,返回到S3, 否则结束。,算法: S1:sign=1 S2:n=2 S3:s=1 S4:sign=(-1) sign S5:s=s+sign n S6:n=n+1 S7:若n 100,返回到S4, 否则结束。,例3: 求1-2+3-4-100,3.1.2 简单算法举例,二、流程图表示,一、自然语言表示,3.1.3 算法的表示方法,

5、例1中求5!的算法用流程图表示:,算法: S1:p=1 S2:i=2 S3:p i p S4:i+1 i S5:若i 5,返回S3,否则 结束,得出结果 p为5!。,3.1.3 算法的表示方法,优点:既形象直观,又节省篇幅,基本结构及算法的表示均在 一个矩形框内,尤其适于表示结构化程序的设计。,三、N-S结构化流程图,取消改进流程图中的流程线,这种算法被迫只能从上到下顺 序执行,从而避免了算法流程的任意转向,保证了程序的质量。,所谓结构化程序设计就是由基本结构顺序组成的,基本结构之间无跳转。,3.1.3 算法的表示方法,例1中求5!用N-S图表示:,main( ) int i,p; p=1;

6、i=2; do p=p*i; i=i+1; while(i5) printf(“%d”,p); ,3.1.3 算法的表示方法,伪码是指介于自然语言和计算机语言之间的一种代码, 是帮助程序员制定算法的智能化语言,它不能在计算机上 运行,但是使用起来比较灵活,无固定格式和规范,只要 写出来自己或别人能看懂即可,而且比较容易转换为计算 机程序。,3.1.3 算法的表示方法,四、伪代码表示:,3.1.3 算法的表示方法,input n if n0 print “input error!” goto end else fac=1 i=1 loop: fac=fac*i i=i+1 if i=n goto

7、 loop print fac end,例:用伪码表示的计算n!的算法,返回,为了使流程图便于理解和阅读,限制无规律的任意转向,结构化程序设计规定了三种基本结构,即:顺序结构、选择结构、循环结构。然后由这些基本结构按一定规律组成一个算法结构,整个算法的结构由上而下地将各个基本结构顺序排列起来的。,三种基本结构:,三种基本结构的特点: (1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行 (4)结构内不存在“死循环”,3.2 顺序结构程序设计,3.2 顺序结构程序设计,顺序结构是最简单的C语言程序结构,也是C语言程序中 最常用的程序结构,主要由表达式语句组成。,特点: 完

8、全按照语句出现的先后顺序执行程序。,一、顺序结构概念:,二、顺序结构流程图表示:,3.2 顺序结构程序设计,三、应用举例:,例3.1:假设银行定期存款的年利率r为2.25%,存款期为n年, 存款本金为m元,求n年后可得到的本利之和。,3.2 顺序结构程序设计,3.2 顺序结构程序设计,程序清单:,printf(“Please enter n,m:”);,运行结果: Please enter n,m:1,500 Total=511.250000,main( ) ,int m,n; float r=0.0225,total;,scanf(“%d,%d”,total=m*pow(1+r,n);,pr

9、intf(“Total=%fn”,total);,#include ,注: 编译预处理命令不是C语句,每条指令单独占一行,同一行不能有其它的编译指令或C语句。,3.2 顺序结构程序设计,C程序结构框架:,以#开始的编译预处理命令行,main( ) ,局部变量说明语句;,执行语句序列;,包含头文件的方式:#include #include “文件名”,3.2 顺序结构程序设计,例3.2:任意从键盘输入一个三位整数,要求正确分离出它的 个位、十位、百位数,分别在屏幕上输出。,算法:,Step 1:输入一个三位整数x;,Step 2:计算最高位b2=x100;,Step 4:计算最低位b0=x%10

10、 或 b0=xb2100b110;,Step 3:计算中间位b1=(xb2100) 10 或 b1=(x10)%10;,Step 5:输出分离结果;,程序见eg3_2,3.2 顺序结构程序设计,3.2 顺序结构程序设计,算法:,Step 4:输出x1和x2;,Step 1:输入a,b,c;,Step 3:由于以假设判别式0,所以可直接按求根公式 计算两个实根x1和x2;,程序见eg3_3,返回,选择结构的应用场合,当需要根据不同的判断条件执行不同的操作时。,若输入的三角形三边能构成一个三角形,则计算三角形面积,计算分段函数的值,3.3 选择结构程序设计,选择结构的流程图表示,3.3 选择结构程

11、序设计,选择结构种类 单分支的选择结构 双分支的选择结构 多分支的选择结构 嵌套的if语句或switch语句,3.3 选择结构程序设计,if else 形式 if(表达式)语句1 else 语句2 适合于解决双分支选择问题,条件语句,if 形式 if(表达式) 语句A 适合于解决单分支选择问题,3.3 选择结构程序设计,elseif 形式 if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式m) 语句m else 语句m+1 适合于解决多分支选择问题,3.3 选择结构程序设计,例3.4 从键盘输入你和你朋友的年龄,编程判断谁的年龄最大,并打印他的年龄。,N-S流

12、程图:,程序见eg3_4_1,算法1: 用不带else子句的if语句编程。,3.3 选择结构程序设计,算法2: 用带有else子句的if语句编程。,N-S流程图:,程序见eg3_4_2,3.3 选择结构程序设计,算法3: 用条件表达式实现。,条件表达式: 表达式1 ? 表达式2 : 表达式3,N-S流程图:,程序见eg3_4_3,3.3 选择结构程序设计,例3.5 体型判断。判断某人是否属于肥胖,可根据身高与体重等因素来判断,按照“体指数”对肥胖程度进行划分: 体指数t = 体重w /(身高h ) (其中,w单位为kg,h单位为m) 当 t27 时,为肥胖。,2,3.3 选择结构程序设计,算法

13、1:用不带else子句的if语句编程。,N-S流程图:,程序见eg3_5_1,算法2:用在if子句中嵌入if语句的形式编程。,程序见eg3_5_2,3.3 选择结构程序设计,算法3:用在else子句中嵌入if语句的形式编程。,程序见eg3_5_3,N-S流程图:,3.3 选择结构程序设计,使用if-else语句应注意的事项,当需要多条语句时必须用复合语句,即把要执行的多条语句用一对大括号括起来。 if子句中内嵌if语句时,else子句总是与它前面最近的且没有配对的if相结合,而与书写的缩进格式无关。为避免错误,有两个办法: 1、if子句中内嵌的 if 语句用一对大括号括起来; 2、尽量采用在

14、else 子句中内嵌 if 语句的形式编程。,3.3 选择结构程序设计,例3.6 编程计算一元二次方程ax+bx+c=0的根,a,b,c由键盘输入,其中,a!=0。,算法(用自然语言描述),Step1:输入系数 a,b,c;,Step4:若a=0,则输出“不是二次方程”;,Step5:若disc0,则计算并输出两个不相等的实根: x1=p+q,x2=p-q;,Step6:若disc=0,则计算并输出两个相等的实根: x1=x2=p;,Step7:若disc0,则计算并输出两个共轭复根: x1=p+qi,x2=p-qi;,3.3 选择结构程序设计,程序见eg3_6,2,例3.7 编程设计一个简单

15、的猜数游戏:先由计算机“想”一个数请人猜,如果人猜对了则计算机给出提示“right”,否则提示“wrong”,并告诉人所猜的数是大还是小。,算法: Step1:通过调用随机函数任意“想”一个数magic; Step2:输入人猜的数guess; Step3:如果guessmagic,则给出提示:“Wrong!Too high!” Step4:如果guessmagic,则给出提示:“Wrong!Too low!” Step5:如果guess=magic,则给出提示:“Right!”,并打印这 个数。,3.3 选择结构程序设计,程序见eg3_7,开关语句switch 当对问题需要分析的情况较多时(一

16、般大于三种),常使用开关语句代替条件语句来简化程序的设计。常用于各种分类统计、菜单等程序的设计。,switch语句的一般形式 switch(表达式) case 常量1:语句序列1 case 常量2:语句序列2 case 常量n:语句序列n default: 语句序列n+1 ,3.3 选择结构程序设计,关于使用switch语句时的几点说明 1. switch后括号内的表达式的值一般为整型、字符型或枚举型, 而且,每个case后的“常量表达式”的类型应该与switch后括号 内表达式的类型一致。 2. 若case后面的语句省略不写,则表示它与后续case执行相同的 语句。 3. 程序执行到switch语句时,先计算表达式的值,然后自上而下 寻找与该值相匹配的case常量,找到后则按顺序执行此c

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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