c语言教案第四章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《c语言教案第四章.ppt》由用户(hwpkd79526)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教案 第四
- 资源描述:
-
1、2023-4-291C语言程序设计 第第四四章章 程序流程控制程序流程控制n算法算法的基本概念以及表示方法,简单介绍流程图的基本概念以及表示方法,简单介绍流程图nC C程序的程序的3 3种基本流程种基本流程控制结构:控制结构:顺序结构、选择结构顺序结构、选择结构(也叫分支结构)、循环结构(也叫分支结构)、循环结构,每种结构的控制语句:,每种结构的控制语句:if、switch控制选择结构控制选择结构for、while、dowhile控制循环结构控制循环结构break、continue、goto等等语句的用法语句的用法循环嵌套程序的设计及运行过程循环嵌套程序的设计及运行过程n一些常用算法的基本思想
2、:一些常用算法的基本思想:分段函数求解问题分段函数求解问题判断一个整数是否为质数判断一个整数是否为质数求两个正整数的最大公约数求两个正整数的最大公约数各种求和问题各种求和问题掷骰子游戏的多种解法掷骰子游戏的多种解法求阶乘求阶乘打印规则的图形打印规则的图形穷举问题的多种求解方法穷举问题的多种求解方法n算法算法(AlgorithmAlgorithm)就是为解决一个具体问题而采取)就是为解决一个具体问题而采取的有限的操作步骤,算法通过的有限的操作步骤,算法通过语句语句来实现来实现 n计算机算法分两类:计算机算法分两类:数值运算算法数值运算算法、非数值运算算法非数值运算算法n程序程序=数据结构数据结构
3、+算法算法n算法的正确性衡量标准:算法的正确性衡量标准:有穷性:有穷性:算法包含有限步操作算法包含有限步操作确定性:确定性:每一步都应确定无歧义每一步都应确定无歧义 有效性:有效性:每一步都应能有效执行且能得到确定的结果每一步都应能有效执行且能得到确定的结果 0 0或多个输入或多个输入:程序允许无输入程序允许无输入 1 1或多个输出:或多个输出:任何程序都必须有输出,哪怕是提示信息任何程序都必须有输出,哪怕是提示信息 解决求数值解的问题解决求数值解的问题 解决需要用分析推理、逻解决需要用分析推理、逻辑推理才能解决的问题辑推理才能解决的问题 数据的描述和组织形式数据的描述和组织形式 对操作或行为
4、的描述,对操作或行为的描述,即操作步骤即操作步骤 n常用的算法描述方法有:自然语言、常用的算法描述方法有:自然语言、传统流程图传统流程图、NSNS流程图、伪代码等,这里只介绍传统流程图。流程图、伪代码等,这里只介绍传统流程图。n例:求例:求n!n!的算法思想:的算法思想:nn!=1n!=1*2 2*3 3*n nn由于计算机执行乘法时每次只能求两个数相乘,因此由于计算机执行乘法时每次只能求两个数相乘,因此上面的公式在程序中必定需要通过上面的公式在程序中必定需要通过反复相乘反复相乘来实现。来实现。n需要设定一个变量需要设定一个变量n n,表明求多少的阶乘;,表明求多少的阶乘;n第二个变量第二个变
5、量,存当前累乘的结果;,存当前累乘的结果;n第三个变量第三个变量存当前将要与累乘器相乘的因子,并且该存当前将要与累乘器相乘的因子,并且该因子的变化是从因子的变化是从1 1到到n n每次增加每次增加1 1n流程图如下页所示流程图如下页所示no开始开始n0?输入输入n图图4.2 计算计算n!的传统流程图的传统流程图fac=1,i=1fac=fac*ii=i+1i=n?yes输 出输 出 f a c值值no结束结束输 出 错 提输 出 错 提示示yes开始开始结束框结束框输入输入/输出框输出框判判断断框框一般一般处理框处理框循环循环结构结构3 3种基本结构的种基本结构的特点:单入口,特点:单入口,单
6、出口单出口流程线流程线选择选择结构结构顺序结构顺序结构nC C语言的语句有语言的语句有五大类:五大类:n(1)9种种控制语句控制语句:这一类语句用于实现流程控制,选择结构和循:这一类语句用于实现流程控制,选择结构和循环结构必须通过控制语句实现。环结构必须通过控制语句实现。ifelse语句语句:是实现选择结构最常用的语句:是实现选择结构最常用的语句switch语句:语句:用于控制某些多分支的选择结构用于控制某些多分支的选择结构 for()语句语句:最常用最灵活的循环控制语句,当型循环:最常用最灵活的循环控制语句,当型循环while()语句语句:循环结构最安全的控制语句,当型循环:循环结构最安全的
7、控制语句,当型循环dowhile()语句语句:控制先执行后判断的直到型循环结构:控制先执行后判断的直到型循环结构continue语句语句:表示提前结束本次循环,忽略其后循环体中的其他语句:表示提前结束本次循环,忽略其后循环体中的其他语句break语句语句:可用于:可用于switchswitch语句语句(结束结束switch)switch)或循环体中或循环体中(结束本层循环结束本层循环)goto语句语句:流程跳转语句,很灵活,可实现各种结构,建议少用或不用:流程跳转语句,很灵活,可实现各种结构,建议少用或不用 return语句语句:专门用于函数返回,被调函数执行到:专门用于函数返回,被调函数执行
8、到returnreturn就返回到调用点就返回到调用点 n(2)变量声明语句变量声明语句:用来定义变量,形如:用来定义变量,形如:int a,b;n(3)表达式语句表达式语句:C C语言中任何一个表达式最后加上分号构成表达式语句,语言中任何一个表达式最后加上分号构成表达式语句,赋值语句和函数调用语句赋值语句和函数调用语句是最常用的表达式语句是最常用的表达式语句n(4)复合语句复合语句:以一对大括号括起的以一对大括号括起的0 0或多条语句,在语法上仍为一条语句或多条语句,在语法上仍为一条语句 n(5)空语句空语句:只有一个分号构成的语句,表示什么也不做只有一个分号构成的语句,表示什么也不做 n顺
9、序结构的特点顺序结构的特点:语句按顺序依次执行,不涉及到任何:语句按顺序依次执行,不涉及到任何条件的判断。条件的判断。n顺序结构所使用的语句顺序结构所使用的语句:变量声明语句、读写函数调用:变量声明语句、读写函数调用语句、赋值语句、语句、赋值语句、returnreturn语句等。无需用其他流程控制语句等。无需用其他流程控制语句语句n优点优点:结构简单易懂:结构简单易懂n缺点缺点:对程序的健壮性、完备性往往无法兼顾:对程序的健壮性、完备性往往无法兼顾n例:例:程序程序4.1 4.1 从键盘上输入从键盘上输入a a,b b,c c的值,并以它们为的值,并以它们为三角形的三条边,求三角形的面积。三角
10、形的三条边,求三角形的面积。n 算法思想:算法思想:根据数学知识,设一个变量根据数学知识,设一个变量s s用于求三角形用于求三角形周长的一半,即周长的一半,即s=(a+b+c)/2s=(a+b+c)/2,再利用一般三角形求面,再利用一般三角形求面积的公式求解:积的公式求解:c)b)(sa)(ss(sn程序程序4.1 4.1 求任意三角形的面积求任意三角形的面积n#includen#include /包含平方根函数包含平方根函数sqrt的声明的声明nint main()nn double a,b,c,s,area;/定义定义5个个double变量变量n printf(“Please input
11、a,b,c:n”);/屏幕提示屏幕提示 scanf(%lf%lf%lf,&a,&b,&c);/输入输入a,b,c的值的值n s=(a+b+c)/2;/求周长的一半求周长的一半n area=sqrt(s*(s-a)*(s-b)*(s-c);/求面积求面积n printf(area=%fn,area);/输出面积输出面积 n return 0;n输入输入 3 4 5输出输出area=6.000000 编程提示编程提示:存原始数据的变:存原始数据的变量,用读入方式使其获得量,用读入方式使其获得的值更灵活,也可赋值,的值更灵活,也可赋值,但是通用性下降但是通用性下降编程提示编程提示:如果变量的值需要根
12、据其他:如果变量的值需要根据其他变量或一定的计算规则计算出来,则变量或一定的计算规则计算出来,则使用赋值语句而不能读入使用赋值语句而不能读入问题问题1 1:可能会输入负数可能会输入负数问题问题2 2:即使输入的都是正数,即使输入的都是正数,未必能构成一个三角形未必能构成一个三角形顺序结构顺序结构无法解决需要作出判无法解决需要作出判断的问题!断的问题!n选择结构的特点选择结构的特点:通过某一个或若干条件的约束,有选:通过某一个或若干条件的约束,有选择性地执行特定语句择性地执行特定语句-在符合一定条件时,执行特定在符合一定条件时,执行特定操作;在不符合条件时,操作;在不符合条件时,不执行操作不执行
13、操作或或执行另外的操作执行另外的操作 n选择结构使用的流程控制语句选择结构使用的流程控制语句:ifif语句、语句、switchswitch语句语句n优点优点:保证程序的健壮性、完备性:保证程序的健壮性、完备性nifelseifelse语句形式语句形式:n ifif(表达式表达式)语句块语句块1 1n else else 语句块语句块2 2 n执行过程执行过程:先计算先计算表达式表达式,若若非非0(0(真真)n则执行语句则执行语句块块1 1;如果表达式为如果表达式为0(0(假假)n则执行语句则执行语句块块2 2 不平衡的不平衡的ifelseifelse语句语句(单分支单分支if if)ifels
14、eifelse语句语句(双分支双分支if if)表达式可以是任何类型的表达式可以是任何类型的,条件表达式和逻辑表达式条件表达式和逻辑表达式最常用最常用语句块通常用复合语语句块通常用复合语句实现句实现,若复合语句若复合语句内只有一条语句内只有一条语句,则则一对大括号可以不写一对大括号可以不写表达式表达式真真假假语句块语句块1 1语句块语句块2 2不平衡的不平衡的ifelseifelse语句语句(if if语句语句)不执行操作不执行操作n程序程序4.1 4.1 求任意三角形的面积求任意三角形的面积n#includen#include /包含平方根函数包含平方根函数sqrt的声明的声明nint ma
15、in()n double a,b,c,s,area;/定义定义5个个double变量变量n printf(“Please input a,b,c:n”);/屏幕提示屏幕提示 scanf(“%lf%lf%lf”,&a,&b,&c);/输入输入a,b,c的值的值n s=(a+b+c)/2;n area=sqrt(s*(s-a)*(s-b)*(s-c);/求面积求面积n printf(“area=%fn”,area);/输出面积输出面积 n n return 0;n问题问题1 1:可能会输入负数可能会输入负数问题问题2 2:即使输入的都是正数,即使输入的都是正数,未必能构成一个三角形未必能构成一个三
16、角形顺序结构顺序结构无法解决需要作出判无法解决需要作出判断的问题!断的问题!程序程序4.2 4.2 改进程序改进程序4.14.1,在构成三角形时求面积,否则给提示信息,在构成三角形时求面积,否则给提示信息if (a0&b0&c0&a+bc&a+cb&b+ca)else printf(Error input!n);此此elseelse分支分支不能省略不能省略,否则在不能,否则在不能构成三角形时将没有任何输出,构成三角形时将没有任何输出,就不是一个正确的算法了就不是一个正确的算法了n程序程序4.3 4.3 生成生成5050以内的两个随机数,比较大小,输出较大者及以内的两个随机数,比较大小,输出较大
17、者及两者之差的值。若第两者之差的值。若第1 1个数大于第个数大于第2 2个数,输出个数,输出you are lucky!you are lucky!n#includen#include /含含srand和和rand函数的原型函数的原型n#include /含含time函数的原型函数的原型nint main()nint a,b;/定义两个整型变量定义两个整型变量a和和bnsrand(time(NULL);/调用当前系统时钟产生随机种子调用当前系统时钟产生随机种子a=rand()%50;/产生一个产生一个50以内的随机数赋给以内的随机数赋给anb=rand()%50;/产生另一个产生另一个50以内
18、的随机数赋给以内的随机数赋给bnif(ab)/如果如果a大于大于bn printf(“the larger number is a:%dn”,a);/输出较大者输出较大者n printf(a-b=%dn,a-b);/输出输出a与与b的差值的差值n else /如果如果a不大于不大于b,即即ab)printf(“you are lucky!n”);/if语句语句nreturn 0;n若删除此句,则每次产生的随若删除此句,则每次产生的随机数都是一样的,这是调用系机数都是一样的,这是调用系统时钟产生随机种子统时钟产生随机种子上机运行观察结果上机运行观察结果上机测试观察运行结果并分析:上机测试观察运行
19、结果并分析:(1)(1)删除删除srand(time(NULL);(2)(2)删除删除elseelse后的一对大括号后的一对大括号若删除此一对括号,则语句若删除此一对括号,则语句printf(“b-a=%dn”,b-a);成为成为一条不受条件控制的语句一条不受条件控制的语句nifelseifelse语句形式语句形式:ifif(表达式表达式)语句块语句块1 1 elseelse 语句块语句块2 2 nifif语句形式语句形式:ifif(表达式表达式)语句块语句块1 1n最常用的嵌套最常用的嵌套ifelseifelse语句形式语句形式:ifif(表达式表达式1)1)语句块语句块1 1 elseel
20、se ifif(表达式表达式2)2)语句块语句块2 2 else else 语句块语句块n n在语句块处还可以嵌入在语句块处还可以嵌入ifif或或ifelseifelse语句,形成形式多语句,形成形式多样的嵌套样的嵌套ifif语句,以解决多语句,以解决多分支分支(=3=3)的处理问题的处理问题elseelse总是与其前面与之最靠近的并且未与其它总是与其前面与之最靠近的并且未与其它elseelse匹配过的匹配过的ifif相对应;相对应;每个每个elseelse都代表了与其对应都代表了与其对应ifif完全相反的条件,编完全相反的条件,编程时应充分利用程时应充分利用elseelse所代表的条件简化程
展开阅读全文