




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第4讲 算法、C程序的三种结构、C语句 n教学目的与要求:教学目的与要求: 了解了解C C语句的语句及算法的特点和表示方法;语句的语句及算法的特点和表示方法; 掌握程序的三大基本结构及赋值运算符与表达式掌握程序的三大基本结构及赋值运算符与表达式n教学内容提要:教学内容提要: 1 1、算法与程序的三大基本结构、算法与程序的三大基本结构 2 2、C C程序中的语句程序中的语句 3 3、赋值运算符与表达式、赋值运算符与表达式n教学重点:教学重点:1 1、C C程序的三种结构的表示方法程序的三种结构的表示方法 2 2、C C语句和赋值语句语句和赋值语句 n教学难点:程序的三大基本结构教学难点:程序的
2、三大基本结构n教学进度:教材教学进度:教材 P48P48P60P60 n教学过程:教学过程:24.1、算法与程序的三大基本结构1、数据结构是程序所处理的对象数据的表示和组织形式2、算法:指为解决某个特定问题而采取的确定切有限的步骤。 1976年瑞士计算机科学家年瑞士计算机科学家Niklaus Wirth在他的惊世之在他的惊世之作中提出了一个著名的公式:作中提出了一个著名的公式:算法算法 + 数据结构数据结构 = 程序程序即:即:“程序就是在数据的某些特定表示方式和结构的基础程序就是在数据的某些特定表示方式和结构的基础上对抽象算法的具体表述上对抽象算法的具体表述”。一、算法的概述一、算法的概述3
3、二、算法的组成要素与基本性质算法的组成要素与基本性质 1、算法含有两大要素:算法含有两大要素:(1)操作)操作算法是由一系列操作组成的。算法是由一系列操作组成的。(2)控制结构)控制结构同一操作序列,按不同的顺序执行,就会得出不同的结同一操作序列,按不同的顺序执行,就会得出不同的结果。控制结构即如何控制组成算法的各操作的执行顺序。果。控制结构即如何控制组成算法的各操作的执行顺序。 结构化程序设计方法要求:一个程序只能由三种基本控结构化程序设计方法要求:一个程序只能由三种基本控制结构制结构(或由它们派生出来的结构或由它们派生出来的结构)组成。组成。1966年年Bohm和和Jacopini证明,由
4、这三种基本结构可以组成任何结构证明,由这三种基本结构可以组成任何结构的算法,解决任何问题的算法,解决任何问题4n(1) (1) 顺序结构。顺序结构中的语句是按书写的顺序执行的,顺序结构。顺序结构中的语句是按书写的顺序执行的,即语句的执行顺序与书写顺序一致。这是一种理想的结构,即语句的执行顺序与书写顺序一致。这是一种理想的结构,但是光有这样的结构不可能处理复杂的问题。但是光有这样的结构不可能处理复杂的问题。 (2) (2) 选择结构。最基本的选择结构是当程序执行到某一语选择结构。最基本的选择结构是当程序执行到某一语句时,要进行一下判断,从两种或多条路径中选择一条。句时,要进行一下判断,从两种或多
5、条路径中选择一条。 例如,要在两个数例如,要在两个数a,ba,b中取一个最大的数就要经过比中取一个最大的数就要经过比较判断,决定是将较判断,决定是将a a还是将还是将b b输出。选择结构给程序注入最输出。选择结构给程序注入最简单的智能。简单的智能。 (3) (3) 循环结构循环结构( (或称重复结构或称重复结构) )。这种结构是将一条或多条。这种结构是将一条或多条语句重复地执行若干遍。就像驴子拉磨一样,虽然每一圈语句重复地执行若干遍。就像驴子拉磨一样,虽然每一圈的操作都比较简单,而且相同,但磨上若干圈后就能把麦的操作都比较简单,而且相同,但磨上若干圈后就能把麦子磨成面粉。众所周知,电子计算机的
6、一大优势是速度快。子磨成面粉。众所周知,电子计算机的一大优势是速度快。当能把一个复杂问题用循环结构来实现时,就能充分地发当能把一个复杂问题用循环结构来实现时,就能充分地发挥计算机的高速度的优势。挥计算机的高速度的优势。这三种基本结构是:这三种基本结构是:52、算法的特性: 有穷性 确定性 可行性 有零个或多个输入 有一个或多个输出。 第三章第三章 最简单的最简单的C C程序设计程序设计6三、算法算法描述工具算法算法描述工具1. 流程图流程图过程过程判断判断数据数据预定义过程预定义过程起止起止流程线流程线连接连接注释注释 常用的流程图标准化符号常用的流程图标准化符号 流程图是一种流传很广的算法描
7、述工具。这种工具的特点是流程图是一种流传很广的算法描述工具。这种工具的特点是用一些图框表示各种类型的操作,用线表示这些操作的执行用一些图框表示各种类型的操作,用线表示这些操作的执行顺序顺序7S1S1S2S2S3S3P PS1S1S2S2真真假假P PS2S2假假真真(a)顺序结构)顺序结构 (b)选择结构)选择结构 (c)循环结构)循环结构 用流程图表示的三种基本流程控制结构。用流程图表示的三种基本流程控制结构。这三种基本结构有一个明显的特征:这三种基本结构有一个明显的特征: 单入口和单出口。从整体上看都相当于一个处理框。单入口和单出口。从整体上看都相当于一个处理框。用它们所组成的程序来龙去脉
8、十分清晰。用它们所组成的程序来龙去脉十分清晰。8例例 求解方程求解方程axax2 2+bx+c=0+bx+c=0的流程图。的流程图。p=-b/(2*a)disc=b*b-4*a*c输入输入a,b,cx1=p+q,x2=p-qq=sqrt(disc)/(2*a)输输出出x1,x2第三章第三章 最简单的最简单的C C程序设计程序设计9例例:用流程图描述从三个数中取最大数的算法。用流程图描述从三个数中取最大数的算法。a=ba=b输入输入a,b,ca,b,cmax=amax=a真真假假max=bmax=bmax=cmax=c真真假假输出输出maxmax输出输出c c开始开始结束结束i=3i=maxn=
9、maxmax=nmax=n102、N-S图表示算法完全去掉了带箭头的流程线。每种结构用一个矩形框表示。完全去掉了带箭头的流程线。每种结构用一个矩形框表示。 N-S流程图表示算法的优点:流程图表示算法的优点: 比文字描述更加直观、形象,易于理解;比文字描述更加直观、形象,易于理解; 比传统的流程图紧凑易画;比传统的流程图紧凑易画; 废除流程线,整个算法结构是由各个基本结构按顺序组成。废除流程线,整个算法结构是由各个基本结构按顺序组成。N-SN-S流程图的上下顺序就是执行时的顺序。流程图的上下顺序就是执行时的顺序。N-SN-S图表示的算法图表示的算法都是结构化的算法。都是结构化的算法。 第三章第三
10、章 最简单的最简单的C C程序设计程序设计11S1S1S2S2S3S3P PS1S1S2S2当当P PS S假假真真(c)当型重复结构)当型重复结构(a)顺序结构)顺序结构 (b)选择结构)选择结构用用N-S图描述三种基本流程结构图描述三种基本流程结构 12a=ba=bmax=amax=amax=bmax=b输入输入a a,b b,c c假假真真max=cmax=c输出输出maxmax输出输出c c真真假假当当i=3i=maxn=maxmax=nmax=n真真假假输入输入n n初始化:初始化:max=0max=0,i=1i=1输出输出maxmax例例:用用N-S图描述从三个数中取最大数的算法。
11、图描述从三个数中取最大数的算法。133. 伪代码伪代码n伪代码伪代码(pseudo code)是用介于自然语言与计算机语言之是用介于自然语言与计算机语言之间的文字符号算法描述的工具。它无固定的、严格的语法间的文字符号算法描述的工具。它无固定的、严格的语法规则,通常是借助某种高级语言的控制结构,中间的操作规则,通常是借助某种高级语言的控制结构,中间的操作可以用自然语言可以用自然语言(如中文或英文如中文或英文),数中取大算法的伪代码描述。数中取大算法的伪代码描述。输入输入a,b,c;if(a=b)max=a;else max=bif(max=c) 输出输出max;else 输出输出c;四、自顶向下
12、,逐步细化的算法设计过程自顶向下,逐步细化的算法设计过程第三章第三章 最简单的最简单的C C程序设计程序设计n算法设计是一个的智力过程。设计复杂问题的算法更是一个高算法设计是一个的智力过程。设计复杂问题的算法更是一个高强度的智力劳动。实践证明,保证算法设计正确的一个方法是强度的智力劳动。实践证明,保证算法设计正确的一个方法是要让问题的复杂性能够在人的智力容易控制范围之内。为此人要让问题的复杂性能够在人的智力容易控制范围之内。为此人们提出了一种自顶向下、逐步细化的算法设计方法。们提出了一种自顶向下、逐步细化的算法设计方法。n按照这种方法,解题之初不要一下子就力图触及到问题解法的按照这种方法,解题
13、之初不要一下子就力图触及到问题解法的细节,而应当从问题的全局出发,给出高度概括、抽象的算法,细节,而应当从问题的全局出发,给出高度概括、抽象的算法,通常是把这些问题的求解分成可以独立求解的若干子问题;接通常是把这些问题的求解分成可以独立求解的若干子问题;接着对每一个子问题,再进行分解;着对每一个子问题,再进行分解;最后对不可再分的子问最后对不可再分的子问题分别设计算法,而且设计的过程也是从概括逐步细化。一般题分别设计算法,而且设计的过程也是从概括逐步细化。一般说来,上层解决的是说来,上层解决的是“做什么做什么”的过程,逐步细化的过程是解的过程,逐步细化的过程是解决决“怎么做怎么做”的过程。的过
14、程。n在用伪代码描述算法时,随着逐步细化,最终可以用程序设计在用伪代码描述算法时,随着逐步细化,最终可以用程序设计语言代替算法中的伪代码。等到全部伪代码都用某种程序设计语言代替算法中的伪代码。等到全部伪代码都用某种程序设计语言描述了,程序设计也就基本完成了。语言描述了,程序设计也就基本完成了。n例:用自顶向下、逐步细化的方法设计三数中取大算法的过程。例:用自顶向下、逐步细化的方法设计三数中取大算法的过程。 这里,仅考虑采用伪代码描述的方法。这里,仅考虑采用伪代码描述的方法。 (1) 首先,把该问题分析为:首先,把该问题分析为: s1: 输入三数输入三数a,b,c;s2: 从从a,b,c中找出大
15、数赋给中找出大数赋给max;s3: 输出输出max。(2) 在前一阶段的基础上考虑各个在前一阶段的基础上考虑各个“做什么做什么”的实现途径,把算法细化为:的实现途径,把算法细化为:s1: 调用调用scanf()函数;函数;s2: 设计一个函数设计一个函数max3 (a,b,c);s3: 调用调用printf()函数。函数。(3) 设计设计max 3()的算法。仍按逐步细化的方法,先给出概要算法。的算法。仍按逐步细化的方法,先给出概要算法。设三个参数为设三个参数为float x, float y, float z。s2.1: 从从x与与y中取大数送中取大数送m中;中;s2.2: 从从m与与z中取
16、大数送中取大数送m中;中;s2.3: 返回返回m给主调函数。给主调函数。16float max 3 (float x, float y, float z)float m;if (xy) m=x;else m=y;if (mz) m=m;else m=z;return (m);int main(void) /*三数中取大数三数中取大数*/float a,b,c, max;float max3(float x,float y, float z);printf (Input 3 numbers a b c:);scanf (%f%f%f, &a,&b,&c);max=max3(a,b,c);prin
17、tf (The max is: %fn, max);return 0;174.2、C语句简介1、C语言的语句概述:程序对数据的处理是通过“语句”的执行来实现的。一条语句完成一项操作(或功能)。一个为实现特定目的的程序应包含若干条语句。C语言本身不提供输入输出语句,输入和输出操作都是由函数来实现的。那么函数如何来实现输入输出操作呢? 第三章第三章 最简单的最简单的C C程序设计程序设计18 表达式语句(表达式;)表达式语句(表达式;) 简单语句简单语句 函数调用语句(函数名(参数表)函数调用语句(函数名(参数表) ) ; 空语句(;)空语句(;) C语言语言 数据操作数据操作 复合语句(复合语句
18、( 一条或多条语句一条或多条语句 ) 语句语句 条件语句(条件语句(if语句,语句,switch语句)语句) 结构化语句结构化语句 while语句语句 循环语句循环语句 do_while语句语句 for语句语句 流程控制语句流程控制语句 break语句语句 限定转向语句限定转向语句 continue语句语句 非结构化语句非结构化语句 return语句语句 非限定转向语句(非限定转向语句(goto语句)语句)2 2、C C语言的语句分类:语言的语句分类:第三章第三章 最简单的最简单的C C程序设计程序设计193、简单语句1).表达式语句由表达式组成的语句称为表达式语句语句格式:表达式;分号分号(
19、;)(;)是语句是语句结束的标志结束的标志功能:计算表达式或改变变量的值。分类:运算符表达式语句和赋值语句(1)运算符表达式语句:运算符表达式后跟一个分号组成例1:i+; 语句的功能是,变量i的值增1。a=3,b=a+2,c=a+1; /*由三个赋值语句组成的逗号表达式语句。*/ a+b; /*算术表达式语句,计算a与b之和。*/第三章第三章 最简单的最简单的C C程序设计程序设计20(2)赋值语句:赋值表达式后跟一个分号组成。例2:x=y+z; /*计算y+z的和并赋值给变量x。*/x=2; y=3;由函数调用后加一个分号组成。格式:函数名 (参数列表);分类:标准库函数用户定义函数标准库函
20、数调用原则:(1) 要在程序中包含相应的头文件(2) 调用的一般形式:函数名 (参数列表);例3:scanf(%f,&x);printf(%f,x);第三章第三章 最简单的最简单的C C程序设计程序设计214.3、 赋值运算符和赋值表达式22该赋值运算符左边不是变量,而是一个表达式23*=、/=、%=、+=、-=、=、&=、=、=共10个由赋值运算符与算术、位移、位逻辑运算符组成。复合运算符是一个运算符,但功能上,是两个运算符功能的组合。例3:a+=b 相当于 a=a+ba*=b+c 相当于 a=a*a=2; a+=a*=a; a的值为8练习: a=2; a+=a*a; 求a的值? 24C语言允许整型、实型、字符型数据进行混合运算。 不同类型的数据进行混合运算时,要考虑的问题有:(1)运算符的优先级别;(2)运算符的结合方向;(3)数据类型转换。 C语言数据类型转换可归纳为二种方式:强制转换表达式中的类型转换算术表达式中的运算转换赋值转换 输出转换 函数调用转换 25intunsigned intlong intdoublefloatchar, short存储长度较短存储长度较长总趋势:1.算术表达式中的运算转换26例6:int x=2;double y=1.6;cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《往来款项管理办法》
- 中国黄金业务管理办法
- 综合部工作管理办法
- 萧山区保洁管理办法
- 红领巾社团管理办法
- 东河夜市摊位管理办法
- 中学物资采购管理办法
- 专业分包过程管理办法
- 中心开放合作管理办法
- 中建项目任职管理办法
- 小学语文教科书三年级上册第五单元(习作单元)教材解读和教学目标
- 房屋抵扣协议书
- 《班主任如何说话学生才喜欢听》
- JJF 2176-2024便携式湿度发生器校准规范
- 2025巷道掘砌工(技师)技能鉴定精练考试指导题库及答案(浓缩300题)
- 2025年教资初中体育试题及答案
- 硫酸安全知识培训课件
- 2025年浙能集团应届生招聘818人笔试参考题库附带答案详解
- 拍卖师职业技能培训课件
- 电子产品仓库管理制度
- 2025年中国工商银行辽宁分行社会招聘笔试参考题库含答案解析
评论
0/150
提交评论