C语言程序设计第四版PPT谭浩强.ppt_第1页
C语言程序设计第四版PPT谭浩强.ppt_第2页
C语言程序设计第四版PPT谭浩强.ppt_第3页
C语言程序设计第四版PPT谭浩强.ppt_第4页
C语言程序设计第四版PPT谭浩强.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 算法,算法在程序中的重要性,一个程序包含以下内容,数据的类型与组织形式数据结构 操作步骤算法 结构化程序设计方法 计算机语言,计算机算法,数值运算 非数值运算,算法实例,在一组数a1,a2,a3,a4,.,a10中找出最大值,算法的特征,有穷性:操作步骤有限 确定性:每一步骤有确切定义 输入:0个或多个输入,从外界获得信息 输出:一个或多个输出,反映数据处理结果有效性:每个步骤能执行,并有确定结果 “正确”的算法有优劣之分,时间、空间的复杂度,算法的表达方式,自然语言 流程图 N-S图 伪代码 计算机语言,算法的表达方式,自然语言 流程图 N-S图 伪代码 计算机语言,如果x是正数,就打印x;否则打印-x,算法的表达方式,自然语言 流程图 N-S图 伪代码 计算机语言,算法的表达方式,自然语言 流程图 N-S图 伪代码 计算机语言,算法的表达方式,自然语言 流程图 N-S图 伪代码1 计算机语言,如果 x0 就 打印 x 否则 打印 -x,算法的表达方式,自然语言 流程图 N-S图 伪代码2 计算机语言,if x0 then print x else print -x,算法的表达方式,自然语言 流程图 N-S图 伪代码2 计算机语言,if (x0) printf(“%d“, x); else printf(“%d“, -x);,判断框,处理框,输入/输出框,流程线,程序流程图常用符号,结构化程序设计方法,自顶向下 逐步细化 模块化设计 结构化编码,大任务分解为小任务,三种基本程序结构,顺序结构 选择结构 循环结构,顺序结构流程,步骤1,步骤2,步骤3,选择结构(分支结构)流程,语句组1,语句组2,条件,Y,N,循环结构流程,语句组,条件,Y,N,第4章 选择结构,选择结构(分支结构)流程,语句组1,语句组2,条件,Y,N,选择结构实例,P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必须保证b2-4ac0,否则调用sqrt函数会出错。 改进:P.86 例4.1 是否还有不完善之处?,if语句,if (条件) 语句,if (条件) 复合语句 else 复合语句,if (条件) 语句 else 语句,if语句,int x; printf(“x=“); scanf(“%d“,分别输入正数、负数、零,判断程序的运行结果,if语句,int x; printf(“x=“); scanf(“%d“,分别输入正数、负数、零,判断程序的运行结果,关系运算符, = = !=,优先级高 优先级低,关系运算符,例:P.92 L.8,关系表达式,用关系运算符连接算术表达式(或字符/关系/逻辑/赋值表达式)形成 关系表达式的值是真(以1表示) 或假(以0表示) 字符/关系/逻辑/赋值表达式均以数值形式参加关系运算,关系表达式,判断下面程序运行时显示的结果: int a=5,b=3; printf(“%dn“,ab); printf(“%dn“,(a3)(b=3); printf(“%dn“,a3b=3); printf(“%dn“,ab2); printf(“%dn“,a-3(b=2); printf(“%dn“,aA);,逻辑运算符,! 非 & 与 | 或,运算规则见表4-2,4-3,例 P.93-94,优先级,逻辑表达式,例:P.95-96 闰年的表达 以逻辑运算符连接关系表达式和逻辑量形成 逻辑表达式的结果是真(以1表示) 或假(以0表示) 0和1以外的数据(数值、字符等)参加逻辑运算时,以0为假,非0为真,逻辑变量,C+,C99版本使用 类型符 _Bool 值为 true 和 false 头文件 stdbool.h,if语句,if (条件) 语句 if (条件) 语句 else 语句 if (条件) 复合语句 else 复合语句,说明: “条件”是关系表达式或逻辑表达式,其值为“真”(非0)或“假”(0) 语句均要以分号结束, 括起的复合语句每句都以分号结束,if语句,例:P.88 例4.3 三个数从小到大排列,例 求分段函数的值,* 用多个平行的 if 语句表达 * 用 if else if else 表达 * abs,pow,exp函数的使用,if语句,if(条件1) 语句1 else if(条件2) 语句2 else if(条件3) 语句3 else 语句n,例:求一元二次方程的解,if语句的嵌套,if 语句的嵌套 if (.) if (.) 语句1 else 语句2 else if (.) 语句3 else 语句4,“语句”包括复合语句,读教材101页代码,条件运算符和条件表达式,条件运算符 ? : 唯一的三目运算符 条件表达式 表达式1 ? 表达式2 : 表达式3 当表达式1为真时返回表达式2的值,否则返回表达式3的值,条件运算符和条件表达式,例 int a,b,x; a=5; b=8; x=ab?a:b; printf(“%d“,x);,switch语句实现多分支选择结构,switch (表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语句n default: 语句n+1 ,switch语句实现多分支选择结构,说明: switch会执行相符的分支之后的所有语句; 为了使程序在执行一个相符的分支后不再继续执行后面的语句,可使用break语句终止switch; 相邻的多个分支可执行共同的语句。,阅读下面的程序,判断编译和运行结果,int x; char y; scanf(“%d“,x); if (90=x=100) y=“A“; if (80=x=89) y=“B“; if (70=x80) y=“C“; if (60=x70) y=“D“; else y=“E“; printf(“Level:%cn“,y);,注意: scanf函数中的地址运算符; 90=x=100的正确表达; char类型,单引号与双引号; 分支的结构与运行步骤。,阅读下面的程序,判断编译和运行结果,int x; char y; printf(“input x :“); scanf(“%d“,x); switch (x/10) case 10 : y=“A“; case 9 : y=“A“;,case 8 : y=“B“; case 7 : y=“C“; case 6 : y=“D“; default : y=“E“; printf(“Level:%cn“,y);,注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。,阅读下面的程序,判断运行结果,int x=13,y; if (x5) printf(“y=20“); printf(“y=10“); printf(“%d“,y);,注意:y没有被赋值的错误;分支结束后的语句,阅读下面的程序,判断运行结果,float r,S; scanf(“r=%f“,注意: (1)条件后未写 造成分支语句不匹

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论