好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

82页
  • 卖家[上传人]:woxinch****an2018
  • 文档编号:44684266
  • 上传时间:2018-06-14
  • 文档格式:PPT
  • 文档大小:344.50KB
  • / 82 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 3.1 算法与算法的表示方法3.2 顺序结构程序设计3.3 选择结构程序设计 3.4 循环结构程序设计 第三章 程序的控制结构与 结构化程序设计方法3.1 算法与算法的表示方法本章主要内容:1.了解算法的表示方法及其在程序设计中的重要地位.2.掌握 C 语言的基本控制结构和基本控制语句.3.掌握用 C 语言的基本控制语句进行顺序,选择和循环结构程序的设计.4.掌握一些常用的算法,如递推法,迭代法,穷举法等.5.了解结构化程序设计的基本思想算法分类:数值运算算法:解决的是求数值解的问题非数值运算算法:主要解决关于分析推理、逻辑推理等问题,如排序、查找等3.1.1 算法的概念数据结构 + 算法 = 程序数据结构:对数据的描述和组织形式,算法:对操作或行为的描述,即操作步骤 算法——为解决一个具体问题而采取的确定的有限的操作步骤2、控制结构:操作序列的顺序控制三种基本控制结构,即:顺序结构、选择结构、循环结构3.1.1 算法的概念算法的组成要素:1、操作:各种运算如:算术运算、逻辑运算、关系运算等算法的特性:1、有穷性:在有限的时间内,操作步骤能够终止。

      2、确定性:每一步操作的含义必须明确3、有效性:每一步都应当能有效地进行并得到确定的结果4、有0个或多个输入5、有1个或多个输出3.1.1 算法的概念例1:求12345算法一:S1:求12 ,得2;S2:将S1得的2再乘3,得6;S3:将S2得的6再乘4,得24;S4:将24再乘5,得120,结果算法二:S1:p=1S2:i=2S3:p =pi S4:i=i+1S5:若i5,返回S3,否则结束,得出结果 p为5! 比较两个算法:算法一:繁琐,数目大时步骤太多算法二:利用循环算法,借助两个变量,可求任意数的阶乘,提高通用性3.1.2 简单算法举例 3.1.2 简单算法举例 例2: 求1+2+3+4……+100算法:S1:n=1 S2:s=0S3:s=s+nS4:n=n+1 S5:若n 100,返回到S3 ,否则结束1+3+5+7+……+992+4+6+8+…..+100思考:S1:n=1 S2:s=0S3:s=s+nS4:n=n+2S5:若n 5为假打印pmain( ) {int i,p;p=1;i=2;do{p=p*i;i=i+1;}while(i注:编译预处理命令不是C语句,每条指令单独占一行, 同一行不能有其它的编译指 令或C语句。

      3.2 顺序结构程序设计C程序结构框架:以#开始的编译预处理命令行 main( ) {}局部变量说明语句;执行语句序列;包含头文件的方式:#include #include “文件名”3.2 顺序结构程序设计例3.2:任意从键盘输入一个三位整数,要求正确分离出它的个位、十位、百位数,分别在屏幕上输出算法:Step 1:输入一个三位整数x; Step 2:计算最高位b2=x÷100;Step 4:计算最低位b0=x%10 或 b0=x-b2×100-b1×10;Step 3:计算中间位b1=(x-b2×100) ÷10 或 b1=(x÷10)%10;Step 5:输出分离结果;程序见eg3_23.2 顺序结构程序设计例3.3:编程计算方程ax +bx+c=0的根,a,b,c 由键盘输入,假设b -4ac> 022分析: 一元二次方程的求根公式:3.2 顺序结构程序设计算法:Step 4:输出x1和x2;Step 1:输入a,b,c;2Step 2:计算判别式disc = b - 4ac;Step 3:由于以假设判别式>0,所以可直接按求根公式计算两个实根x1和x2;程序见eg3_3返回n 选择结构的应用场合n 计算一元二次方程 ax +bx+c=0的根n b - 4ac>0 有两个不相等的实根n b - 4ac=0 有两个相等的实根n b - 4ac 0y= 1 x = 0-e x > 03.3 选择结构程序设计n选择结构的流程图表示PAB真假N-S 流程图PAB入口出口传统流程图真假3.3 选择结构程序设计n选择结构种类n单分支的选择结构n双分支的选择结构n多分支的选择结构嵌套的if语句或switch语句3.3 选择结构程序设计nif ~ else 形式if(表达式)语句1else 语句2适合于解决双分支选择问 题表达式语句假真表达式语句2真假语句1n 条件语句n if 形式if(表达式) 语句A适合于解决单分支选择问题3.3 选择结构程序设计nelse~if 形式if(表达式1) 语句1else if(表达式2) 语句2…else if(表达式m) 语句melse 语句m+1适合于解决多分支选 择问题表达式1表达式2表达式3语句3语句2语句1语句4真真真假假假3.3 选择结构程序设计n例3.4从键盘输入你和你朋友的年龄,编程判断谁的年龄 最大,并打印他的年龄。

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

      23.3 选择结构程序设计n算法1:用不带else子句的if语句编 程N-S流程图:程序见eg3_5_1n算法2:用在if子句中嵌入if语句的形式编程输入身高h和体重w计算体指数tt0,则计算并输出两个不相等的实根:x1=p+q,x2=p-q; Step6:若disc=0,则计算并输出两个相等的实根: x1=x2=p; Step7:若discmagic,则给出提示:“Wrong!Too high!”Step4:如果guess100)printf(“input error.”); else if(score>=90)printf(“%d—A\n”,score); else if(score>=80)printf(“%d—B\n”,score); else if(score>=70)printf(“%d—C\n”,score); else if(score>=60) elseprintf(“%d—D\n”,score); printf(“%d—E\n”,score);3.3 选择结构程序设计方法二:用switch语句编写程序 main() {}int score, mark; printf(“please enter score:”);scanf(“%d”, if(score 100)printf(“input error.”); else {}mark=score/10; switch( mark ) {}case 10:case 9: case 8:case 7:case 6: case 5:case 4:case 3: case 2: case 1: case 0:printf(“%d—E\n”,score); break;printf(“%d—A\n”,score); break;printf(“%d—B\n”,score); break;printf(“%d—C\n”,score); break;printf(“%d—D\n”,score); break;3.3 选择结构程序设计n例3.9编程设计一个简单的计算器程序,要求根据用户从键 盘输入的表达式: 操作数1 运算符 操作数2来计算表达式的值,指定的运算符为:加( + )、减( - )、 乘( * )、除( / )。

      程序见eg3_9返回3.3 选择结构程序设计3.4 循环结构程序设计n循环结构的应用场合用于需要重复执行的操作步骤和相应算法n 计算: 1+2+3+…+nn 计算: n! = 1×2×3×…×nn 计算 e 的近似值 直到最后一项的绝对值小于10 时认为满足精度要求5n 以二维表形式打印乘法九九表n循环结构的流程图表示n直到型循环结构n当型循环结构AP假(0)真(非0)当 P 为 真AA 直到 P 为真 3.4 循环结构程序设计AP假(0)真(非0)n循环语句循环语句在给定条件成立的情况下,重复执行某 个程序段当循环体是空语句(只有一个分号)时,表示在 循环体中什么也不做重复执行的程序段称为循环体,循环体可以是 单个C语句、空语句或复合语句n三种循环语句while 语句、do-while 语句、for 语句3.4 循环结构程序设计nwhile 语句 (用来实现当型循环) 一般形式为:while(表达式){循环体语句 }ndo-while 语句 (用来实现直到型循环) 一般形式为:do{循环体语句} while(表达式);3.4 循环结构程序设计nfor 语句 (用来实现当型循环结构) 一般形式为: for(表达式1;表达式2;表达式3) {循环体语句 }其中:1) 表达式1 的作用是初始化循环控制变量,即为循环控制变量赋初值;2) 表达式2 的作用是给出循环重复执行的判断条件,这个条件用于决定什么时候结束循环的执行;3) 表达式3 的作用是使循环控制变量发生变化,即通过循环变量的变化使表达式2的条件趋于不成立。

      3.4 循环结构程序设计n注意n for语句与while语句都用于实现当型循环结构,二者是完全等价的,与for 语句等价的while语句形式为:表达式1;while(表达式2){ 循环体语句表达式3 ;}n 当需要使多个变量的值发生变化时,表达式3 也可以用逗号表达式例:for (i=1,j=100;i<=j;i++,j--) sum=sum+i+j;n 当需要为多个变量赋初值时,表达式1 可以用逗号表达式顺序地执行为多个变量赋初值的操作n 三个表达式可以是任何合法的C语言表达式n 表达式中的任何一个都可以省略不写,但分号不能省略不写n 三个表达式之间用分号隔开3.4 循环结构程序设计n单重循环问题应用举例 单重循环问题常用于解决累加求和、累乘求积、统计求 和这类问题n循环次数已知 (一般用for语句实现)n循环次数未知 (一般用while语句或do-while语句实现)n例3.10:将3.7的猜数游戏改为:先由计算机“想”一个1到 100之间的数请人猜,如果人猜对了,则游戏结束,否 则计算机给出提示,告诉人所猜的数是大还是小,直 到人猜对为止。

      计算机记录人猜的次数,以此来反映 猜数者“猜”的水平3.4 循环结构程序设计n算法设计如下: 1. 通过调用随机函数任意“想”一个数magic; 2. 将记录人猜次数的计数器变量count初始化为0; 3. 输入人猜的数gues。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.