ImageVerifierCode 换一换
格式:PPT , 页数:71 ,大小:1.38MB ,
资源ID:3361184      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3361184.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第五讲_switch、算法和流程图-OK.ppt)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第五讲_switch、算法和流程图-OK.ppt

1、,C语言程序设计(A),郭 素梅 GUO Sumei,2018/10/18,(c) Guo S.,运算符,= (赋值) +,-,*,/,% 双目(算术) +,- 单目(自增减) +=,-=,*=,/=,%= 双目(复合) , =, =, =, != 双目(关系) &, | 双目(逻辑) ! 单目(逻辑) ?: 三目(条件),2018/10/18,(c) Guo S.,条件运算符 A?B:C,使用法: 表达式1?表达式2:表达式3表达式1成立的话,其值为表达式2的值,否则为表达式3的值。max = xy? x: y; 唯一的三目运算符,完全等价于: if(xy) max=x; else max

2、= y;,2018/10/18,(c) Guo S.,认识条件运算符 A?B:C,X = X=0? (D0? printf(“两个实数解”): printf(“一个实数解”): printf(“无实数解”);,if(X0)x=-x; if(M)M=x; else M=y;,if(D=0) if(D0)printf(“两个实数解”); else printf(“一个实数解”); else printf(“无实数解”);,2018/10/18,(c) Guo S.,a,b,c,d四个数的最大值,m1 = ab? a:b; m2 = cb?c:d; max = m1m2?m1:m2;,if语句练习,

3、键盘给定三个浮点数a,b和c,求最大值max,和最小值min,并输出键盘输入一个整数m,作为月份。 当m大于12或小于1时,输出“输入错误”; 当m为3到5,输出“春天”; 6到8,输出“夏天”; 9到11,输出“秋天”; 12,1和2时,输出“冬天”,2018/10/18,(c) Guo S.,if语句练习,键盘给定三个浮点数a,b和c,将其按照a大于等于b,且b大于等于c的要求,排序后,输出。【思考:四位数如何做?】 键盘输入一个三位数的整数,判断是否为水仙花数,是则输出“1”,不是则输出“0”。输入的不是三位数,则输出“输入错误”。,2018/10/18,(c) Guo S.,if语句练

4、习,键盘输入一个浮点数score,作为成绩。 当大于100或小于0,输出“输入错误”; 在0到100之间,将其转换为五级制,即90到100为“优秀”,80到89为“良好”,70到79为“中等”,60到69为“及格”,0到59为“不及格”。 算命先生,2018/10/18,(c) Guo S.,重要题,水仙花数;勾股数;对称数;闰年 公倍数&公约数、完数倒序输出;图形输出; 计算面积(简单图形、函数) 级数 排序(数字、字符串); 统计(最大、最小、平均、方差),2018/10/18,(c) Guo S.,2018/10/18,(c) Guo S.,2018/10/18,(c) Guo S.,S

5、witch语句:多分支,if语句是有两个分支。 Switch语句实现多分支:根据表达式的值进行选择,流程图,2018/10/18,(c) Guo S.,Switch语句:多分支,switch(表达式) case 常量1:语句1case 常量2:语句2.case 常量n:语句ndefault:语句n+1 ,格式为:,表达式的值=常量1,表达式的值=常量2,表达式的值=常量n,表达式的值没有匹配的常量,所有case仅是标记为程序执行的入口,不做判断。停止执行要用break,2018/10/18,(c) Guo S.,2 case 后的每个常量表达式必须各不相同。,1 括号内的表达式可以是 int

6、,char。,3 case 和 default的位置是任意的。,4 每一个case之后应有一个 以跳出 switch( ) 结构。,break(间断语句);,5 每个case 之后的执行语句可多于一个, 但不必加 。,6 允许几种case情况下执行相同的语句,不必每个都写case 。,注意事项,2018/10/18,(c) Guo S.,举例,用switch语句实现 输入100分制,输出对应五级制 输入月份,输出对应的季度,2018/10/18,15,2018/10/18,(c) Guo S.,例:输入年,月,计算该月有多少天?,main( ) int year,month,days;prin

7、tf(“Enter year, monthn”);scanf(“%d,%d”,几个CASE 执行相同的 语句,跳出开关结构,处理大月,程序举例,关系到如何判闰年?,2018/10/18,(c) Guo S.,case 4:case 6:case 9:case 11: days=30 ; break;case 2: if (year%4=0) ,判断是否 为闰年,开关结 构结束,处理二月,程序举例 (续),处理小月,2018/10/18,(c) Guo S.,从键盘输入x,求y,并输出。 执行时要求:从键盘输入4次x的值,分别为x=1.0, x=-1.0,-1.0x0, 0=x1.0,2018/

8、10/18,19,算法,算法解决“做什么?”和“怎么做?”对解题过程准确而完整的描述称为解此问题的算法,因此不知道解题的算法也就不可能编写程序来解题。,程序 = 数据结构 + 算法,2018/10/18,20,算法,例如,求一个圆的周长 Len,并输出就需要知道 半径 r 公式 Len 2r 程序涉及操作: 输入半径 r 计算周长 Len 输出周长 Len,按顺序执行命令,2018/10/18,21,算法,已知有30个学生,计算和打印“语文、数学及平均成绩”的算法。 算法设计:就需要得知每个学生的语文数学的成绩,然后计算平均,最后打印。具体步骤为: 输入语文和数学成绩N1和N2 计算平均成绩

9、ave(N1+N2)/2; 打印N1,N2和ave 它涉及3个操作,执行将按1)3)顺序。 从第二个学生开始,重复1)3)步骤。,要控制重复30次!,2018/10/18,22,算法,再比如: 求三个整数(a, b, c)的最大值mx,并输出大流程: 数据输入 求mx 输出mx得到mx的具体步骤为: 输入三个整数a,b,c 如果 a大于b且a大于c 的话,mx=a; 同样如果 b大于a且b大于c 的话,mx=b; 同样如果 b大于a且b大于c 的话,mx=b;,?,要判断、有条件的!,2018/10/18,23,算法,比如: 求3个整数的最大值mx,并输出得到mx的具体步骤为: 输入三个整数a

10、,b,c mx=a; 如果 mx大于b 的话,mx=b; 否则不变; 如果 mx大于c 的话,mx=c; 否则不变;,要判断、有条件的!,2018/10/18,24,算法,再比如: 求3个整数的最大值mx,并输出得到mx的具体步骤为: 输入三个整数a,b,c 如果 a大于b 的话,mx=a; 否则 mx=b; 如果 mx大于c 的话,mx=c; 否则不变;,要判断、有条件的!,2018/10/18,25,算法,可以来源于: 求两个整数(a, b)的最大值mx,并输出得到mx的具体步骤为: 让mx等于第一个数,mx=a1。 mx和剩下的依次比较: 大的话,mx=依次比较的值 不大的话,mx不变,

11、100个、N个,要控制重复99、N-1次! 比较!,2018/10/18,26,根本:按顺序执行命令,控制重复!,判断、条件!,对应C语言程序设计的三种结构!,2018/10/18,27,C语言程序例,题1:输出三个整数(123, 456, 789)的最大值m 可参考max2.c#include int main() int a,b,m;a = 123; b = 456;if( ab ) m = a;else m = b; printf(“max(a,b)=%d”,m);return 0;,max3.c,2018/10/18,28,算法举例,如何求一个整数的阶乘?如何求最大公约数? 如何求三个

12、、四个数的最大值、最小值? 如何利用泰勒展开计算sin,cos的值? 等等,如何设计一个算法?,2018/10/18,29,算法举例,给出利用下边的泰勒展开求sin(0.5)的算法。 要求所加的最后一项不大于0.0005,初始化:x=0.5; i=1; s=1; 将用到:t = pow(x,i); re = re + s*t; i = i+2; s = -s; if(fabs(t)0.0005).,2018/10/18,30,算法举例 求分数列前20项的和sum,分数列: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13.分析算法: 数列 a/b 初值:a=2, b=1 循环变量

13、:1,2,3.20将用到的语句: sum = sum + a/b t=a; a=a+b; b=t;,2018/10/18,31,算法的特点,编写程序,必须学会设计算法。有穷性:有限的操作步骤。指合理范围内的有穷性 确定性:每个步骤是确定的,而不是含糊、模棱两可的。其操作是唯一的。 有效性:能有效执行并得到确定的结果 有0个或以上的输入:执行算法时需要的外界的信息 有1个或以上的输出:执行算法得到的结果,2018/10/18,32,算法举例,如何求一个整数的阶乘? 5!= 1*2*3*4*5,p*i=2 赋给p,p*i=6 赋给p,方法-1,设变量p被乘数, i为乘数,p=1,i=2,i+1=3

14、 赋给i,i+1=4 赋给i,p*i=24 赋给p,i+1=5 赋给i,p*i=120 赋给p,输出p,结束,2018/10/18,33,算法举例,p*i 赋给p,方法-2,设变量p被乘数, i为乘数,p=1,i=2,i+1 赋给i,若i不大于5,重复,若i大于5,输出p结束,试想:当要计算 100!,1000!时,如何求一个整数的阶乘? 5!= 1*2*3*4*5,显然,利用 循环处理和条件判断 方法-2比方法-1的 算法简练!,2018/10/18,34,算法举例,2018/10/18,35,算法的表示,算法的表示通常有: 程序流程图、N-S图和PAD图等方式。例:用程序流程图表示方程的求

15、实解算法,程序设计:工具(语言和流程图等),2018/10/18,36,算法的表示,流程图的基本符号,起、止框,输入、输出框,判断框,处理框,流程控制线,2018/10/18,37,算法的表示,流程图的基本结构: 顺序结构 选择结构 循环结构,处理 = 处理模块或者语句的集合,顺序结构按照顺序执行。 程序的走向是固定的。,2018/10/18,38,算法的表示,流程图的基本结构: 顺序结构 选择结构 循环结构,处理 = 处理模块或者语句的集合,选择结构也叫分支结构。 必须包含判断。根据条件选择要执行的语句。,2018/10/18,39,算法的表示,流程图的基本结构: 顺序结构 选择结构 循环结

16、构 (“当”型),处理 = 处理模块或者语句的集合,循环结构也叫重复结构。 反复执行一部分操作。 分为:当型和直到型,2018/10/18,40,算法的表示,流程图的基本结构: 顺序结构 选择结构 循环结构 (“直到”型),处理 = 处理模块或者语句的集合,循环结构也叫重复结构。 反复执行一部分操作。 分为:当型和直到型,2018/10/18,41,基本结构的特点,3种基本结构: 顺序结构 选择结构 循环结构,特点: 一个入口,一个出口 每个处理都有机会被执行到 不存在“死循环”,2018/10/18,42,结构化,满足以上基本结构特点的算法结构,就可以叫基本结构。 由3种基本结构组成的算法结

17、构,可以解决任何复杂的问题,由基本结构组成的算法,是结构化的算法。,2018/10/18,43,算法设计举例,例:用程序流程图表示方程的求实解算法。没有实解打印“没有实解”具体步骤为: 输入系数a,b和c b*b-4ac=0 有实解 计算实解 打印结果 否则,打印“没有实解” 它涉及两部分处理,执行将按1)2)顺序。1)内有包含两部分处理,计算和打印,2018/10/18,44,算法设计举例,开始,计算s=b*b-4ac,结束,输入系数a,b,c,输出”没有实解”,s=0,输出实根x1和x2,x1=(-b+sqrt(s)/2a x2=(-b-sqrt(s)/2a,Yes,No,2018/10/

18、18,45,算法设计举例,计算和打印“语文数学及平均成绩”的算法。 设计的算法就需要得知语文数学的成绩,然后计算平均,最后打印。具体步骤为: 输入语文和数学成绩N1和N2 计算平均成绩Av(N1+N2)/2 打印N1,N2和Av 它涉及3个操作,执行将按1)3)顺序,2018/10/18,46,算法设计举例,ave2.c,开始,计算平均Av=(a+b)/2,结束,输入成绩N1,N2,输出成绩N1,N2和Av,2018/10/18,47,算法设计举例,#include int main() / main函数 double N1, N2, Av; / 定义变量printf(“请输入语文, 数学成绩

19、n“);scanf(“%lf, %lf“, ,ave2.c,scanf(“%lf%lf“, ,2018/10/18,48,练习:,c2f.c,摄氏和华氏温度变换公式: F=9/5*C+32要求 输出c=0,10,20,100 对应的摄氏温度fc f 0 32.0 10 41.0,框图 程序,2018/10/18,49,练习:,sin的近似计算:要求 追加项的绝对值小于0.00005,框图 程序,2018/10/18,50,2018/10/18,51,结构化程序的设计方法,基本结构: 顺序结构 选择结构 循环结构,结构化程序: 用顺序、选择和循环三种基本结构的组合来设计程序。 也就是说用计算机语

20、言表示的结构化算法。,2018/10/18,52,算法,算法 算法举例 算法的特性 算法的表示 结构化程序的设计方法,2018/10/18,53,算法 小结,本章是计算机程序设计和算法的基础,学习时要重点理解和掌握的是计算机算法的表示方法。 作为一个程序设计人员,应该熟悉并掌握比较常用的程序流程图描述方法,最终需要使用计算机语言,即程序设计语言描述并实现。 本章通过算法举例以训练引导学生用计算机的思维表达解决问题的过程,以最终实现算法,这就是程序设计算法的根本。,2018/10/18,54,作业,P15 第5题 编程:将两个整数a和b分别初始化为123和456,交换其值后输出a和b。,2018

21、/10/18,55,联系,郭 素梅(GUO Sumei) Phone: 0756-362-2865 Office: HA206/205 Email: cnjpguoaulive.jp Chat: MSN(常用) cnjpguoaulive.jp QQ(不常用) 1395092737,2018/10/18,56,计算机构成,计算机本体控制装置演算装置主存储装置,输入装置 输出装置,CPU,中央处理装置 Central Processing Unit,辅存储装置: 硬盘,CD-ROM等,补充,2018/10/18,57,进制,24进制: 一天24小时 60进制: 一小时60分 一分60秒,10进制

22、以外:,补充,2018/10/18,58,进制,8进制: 数字0到7表示 10进制:数字0到9表示 16进制:数字0到9, 字母A到F表示,2进制是基础: 数字0和1表示,补充,2018/10/18,59,进制,N进制到 10进制: a b c,补充,N进制的指数位,2018/10/18,60,进制,二进制到十进制的换算: 1 0 1 0,二进制是基础: 数字0和1表示,二进制2的指数位,补充,2018/10/18,61,进制,二进制到十进制的换算: 0 1 0 0 1 0 1 0,补充,2018/10/18,62,进制,八进制到十进制: 1 2 3,八进制8的指数位,补充,2018/10/1

23、8,63,进制,十六进制到十进制: 1 2 3,十六制16的指数位,补充,2018/10/18,64,进制,十六进制到十进制: A 1 F,补充,2018/10/18,65,进制,十进制到 N 进制: 1 2 3,x位:mod(i/pow(N,x),N)C语言实现:n2 n1 n0 0位:i = i/N ; n0 = i%N; 1位:i = i/N ; n1 = i%N; 2位:i = i/N ; n2 = i%N;,2,补充,0,1,2018/10/18,66,进制,十进制到 16 进制: 1 2 3,0位:x0 = 123 % 16; /11 1位:i = 123/16=7; x1 = 7

24、%16; / 7,7B,补充,2018/10/18,67,进制,十进制到 8 进制: 1 2 3,0位:x0 = 123 % 8; /3 1位:i = 123/8=15; x1 = 15%8; /7 2位:i = 15/8=1;x2 = 1%8; /1,173,补充,2018/10/18,68,b, B, KB, MB, GB, TB,bit,中文叫法:位 Byte,中文叫法:字节 Kilobyte(KB),中文叫法:K Megabyte(MB),中文叫法:兆 Gigabyte(GB),中文叫法:G Terabyte(TB),中文叫法:T,1 TB = 1,024 GB,1 GB = 1,02

25、4 MB,1 MB = 1,024 KB,1 KB = 1,024 B,1 B = 8 b,以2进制为基础,补充,2018/10/18,69,b, B, KB, MB, GB, TB,1位(1b): 只能是0或者1(二进制)1字节(8b): 可表示数字 0 到 255(或 -128到127) 也可保存一个字符(英文字母、数字、符号),ASCII编码(详细附录B)2字节(16b) 可表示数字 0 到 65535(或-32768到32767) 也可保存一个汉语、一个日语或一个韩语字。 CJK是双字节,补充,2018/10/18,70,进制,进制 10,12,24,60, 16,8,2, N 表示 10: 0,1,2,3,.,9 16: 0,1,2,3,.,9,A,B,C.F 2: 0,1,2018/10/18,71,进制,进制间的变换 10 N ni = (x%N), x=x/N, i+ N 10 d = xn*Nn,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报