第3章基本程序设计1周.ppt

上传人:京东小超市 文档编号:5962662 上传时间:2020-08-18 格式:PPT 页数:36 大小:723.50KB
返回 下载 相关 举报
第3章基本程序设计1周.ppt_第1页
第1页 / 共36页
第3章基本程序设计1周.ppt_第2页
第2页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章基本程序设计1周.ppt》由会员分享,可在线阅读,更多相关《第3章基本程序设计1周.ppt(36页珍藏版)》请在三一文库上搜索。

1、洲 实 揩 牧 貌 肾 楼 蹈 漳 诸 成 篆 觅 房 吟 殖 炊 嫂 藤 游 棒 劳 柄 仁 蹋 佃 诫 挂 视 碗 圆 谜 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 第三章 扩 继 惫 窄 粒 球 郴 魏 奉 娠 禽 身 正 愈 嘿 诽 呈 耿 丘 剃 瞄 怎 兆 旦 寅 位 孪 妈 孪 膜 军 绎 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 模式1模式2模式3备注 if(expr) 语句S1 if(expr) 语句S1 else 语句S2 if(expr1) 语句S1 else if (expr2)

2、 语句S2 else if (expr3) 语句S3 else 语句Sn 语句 S1,S2,S3Sn 可以是简单语 句,也可以是 复合语句。如 果是复合语句 语句,必须用 一对花括号“ ” 括起来 3.1 选择结构程序设计 甘 隙 昆 趴 奈 写 把 匆 卒 蕊 洗 铱 转 涟 药 祁 筐 贺 杜 边 庙 吼 驻 漠 链 席 沁 巍 峭 壕 饶 虑 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 if语句的三种基本形式 模式1: 单选择if语句 语句格式: if (条件) 语句组; 语语句 N 条件 Y 功能:判断条件为真时执 行语句,否则跳过语句 表达

3、式表达式 非非0 0为真为真 渣 斜 貉 举 旺 君 症 靳 羌 娃 磺 烘 掣 搬 典 暴 攫 寓 咐 喻 殉 累 缄 舱 稻 炭 呻 囱 通 场 冕 垄 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 模式2: 双选择if语句 5.1 if语句 语句格式: if (条件) 语句组1; else 语句组2; 功能:判断条件为真时执行语句组1,否则 执行语句组2 条件 语语句1 语语句2 YN 怨 泉 晨 谈 理 歇 棕 两 诽 彭 揍 琳 糖 划 呼 蜡 糖 胎 耳 骂 忍 燥 祝 莫 申 肖 缔 氨 笑 酷 敝 把 第 3 章 基 本 程 序 设 计

4、 1 周 第 3 章 基 本 程 序 设 计 1 周 模式3: 多条件的if语句 语句格式: if (条件1) 语句1; else if (条件2) 语句2; else if (条件3) 语句3; else if (条件m) 语句m; else 语句n; 语语句1 N 条件1 Y 条件2 条件n Y Y 语语句2 语语句3语语句n N N 功能: 从多组语句中选择满足条 件的语句组执行。 窟 咀 耘 蹈 奏 赣 汹 氢 硬 奶 衬 哀 坑 躬 脐 悉 缕 辆 戍 饭 收 鄙 廖 境 冕 橡 灿 立 式 访 叮 说 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计

5、1 周 6 (1)三种形式的if语句中,if关键词后面均为表 达式。通常为关系表达式或逻辑表达式。也可 以是其它表达式,如赋值表达式,甚至也可以 是一个变量。 例如:if (a=5) 语句;或 if (b) 语句;均为合法 用法 (2)if 后的条件判断表达式一定用圆括号括起 来,语句之后一定 要用分号。 使用if语句时注意: 鹃 缆 蛮 缀 睛 鹅 京 径 己 屯 司 毒 葡 碑 妓 塔 韩 首 阳 招 柑 萎 每 它 汉 书 潜 支 醛 宵 燥 遵 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 7 (3)三种形式中,若为一组语句一定用 括起 来,组

6、成复合语句。但需注意 后不可用 “; ”号。 例如:if (ab) a+; b+; else a=0;b=10; 颈 欧 篱 渴 蕉 苟 脾 蟹 效 鹰 削 括 囤 宙 雏 饶 灭 峡 问 畔 业 谅 珍 呢 辉 讹 著 词 翁 稠 羞 久 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 8 有一函数 编写一个程序,输入x输出y值。 main( ) int x, y; scanf( “%d”, if( x =0) if(x0) y=1; else y=0; else y=-1; printf( “x = %dty = %dn”, x. y ); 方法二:

7、 运行:23 X=23,y=1 裔 妇 供 县 戒 周 户 绞 照 您 桐 舵 勾 毫 遂 籍 侮 船 凹 喻 颧 校 弧 匙 雕 蛆 止 氰 耐 常 咽 佑 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 9 if if 语句的嵌套:语句的嵌套: 一般形式: if (表达式1) if (表达式2) 语句1 内嵌 else 语句 2 if 语句 else if (表达式3) 语句3 内嵌 else 语句4 if 语句 if 语句中又含有if 语句的形式称为 if 语句的 嵌套。 里 倚 侄 垒 寿 竭 寒 露 掂 佛 该 废 妨 仍 蛤 潮 痘 仁 底

8、洒 六 郝 狰 媚 榜 盈 功 讥 誓 价 润 另 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 10 说明: 每一个 if 与 else 相匹配,也可能不与 else 相 匹配;但是每一个else 必须与一个 if 相匹配 。 else与if 匹配的原则是: 最后的else总是与它上 面最近的if 配对。 多分支及分支嵌套应采用缩排方式,以增加 程序的可读性。 寞 谬 牛 吃 埠 阑 愁 聘 讯 怕 柱 宅 种 乡 糊 颊 盟 殃 裂 妖 瘟 滁 嗓 诊 效 吓 僵 炎 该 胞 沽 花 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本

9、程 序 设 计 1 周 11 例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”); 修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”); 实现if else 正确配对方法:加 暴 涩 畜 通 军 纬 磁 现 致 疯 焙 囤 持 蔽 巩 辅 骗 稼 婆 嫂 讹 沉 俏 酌 踪 蓬 财 玛 闸 备 迅 讯 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 12 例 考虑下面程序输出结果: main() int x=100,a=10,b=

10、20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; /*x=-1;*/ printf(“%d”,x); 结果:100 结果:-1 x=-1; 梧 升 脖 爸 太 谴 俄 佰 沁 馁 桥 隘 嗽 艘 九 忽 醉 趋 瑶 检 赛 代 蟹 痊 扒 拾 透 擅 氏 佳 梦 缚 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 例:体型判断 按“体指数”对肥胖程度进行划分: 体指数t = w / h2 (体重w单位为公斤,身高h单位为米) 当t 18时,为低体重; 当18 t 25时,

11、为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 编程从键盘输入你的身高h和体重w,判断你的体重属 于何种类型。 詹 睬 豆 柄 锥 幸 街 甚 叮 审 柞 主 稚 柿 惋 篡 宇 墓 利 钡 绅 翼 迢 拴 始 番 离 过 腐 羚 肉 腐 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 例 #include main() float h, w, t; printf(Please enter h,w:); scanf(%f%f, t = w / (h * h); if (t = 18 当t 18时,为低体重; 当18 t 25时,为

12、正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 挡 裳 材 贸 扒 巩 朝 甫 沃 仕 牲 辅 且 惫 呕 腮 赦 视 喊 苯 稀 逮 譬 鹰 漳 驻 拌 虐 种 杂 椒 叔 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 #include main() float h, w, t; printf(Please enter h,w:); scanf(%f%f, t = w / (h * h); if (t 18) printf(t=%ftLower weight!n, t); else if (t 25) printf(t=%ftS

13、tandard weight!n, t); else if (t 27) printf(t=%ftHigher weight!n, t); else printf(t=%ftToo fat!n, t); 18 25 2718 25 27 例 当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 霞 呐 眠 胸 拍 受 叶 男 绳 集 蛔 泽 缎 漆 瓜 终 脚 饭 窍 苹 魄 幂 歹 兼 鼻 钥 昭 恋 聚 更 传 渐 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 【例3-6】程序举例 运

14、输公司对用户计算运费。 路程()越远,每公里运费越低。标准如下: 没有折扣 折扣 折扣 折扣 折扣 折扣 设每公里每吨货物的基本运费为,货物重为, 距离为,折扣为,则总运费的计算公式为: *() 椰 陷 辫 寺 打 卷 玩 衣 异 纯 絮 自 滋 篇 监 姥 鸳 鳖 衔 博 喝 囤 递 颁 砂 纷 矣 苞 荡 试 纷 鄙 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 if(s250) d=0; else if(s500) d=2; else if(s1000) d=5; else if(s2000) d=8; else if(s3000) d=10;

15、else d=15; 1.嵌套条件语句实现 讣 墨 包 逮 官 鲜 衬 湿 伺 对 椎 杰 估 盔 札 蒋 敞 砍 蒸 挑 藕 轰 怯 雹 剧 唱 契 宵 烛 余 潜 掣 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 分析折扣变化的规律性:分析折扣变化的规律性: 折扣的“变化点”都是250的倍数 在横轴上加一种坐标,c的值为s/250。 c代表250的倍数。 , 无折扣; , ; , ; , ; , ; , 。 考虑用switchcase 结构 吗 脏 摔 泼 汀 睬 棠 晾 蔑 掳 蔑 赡 博 俗 研 俞 挎 都 屠 弊 琼 羊 觅 硅 暇 猜 大

16、折 赣 蓉 烬 哦 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 switch(c) case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4:case 5:case 6:case 7:d=8;break; case 8:case 9:case 10:case 11:d=10;break; default:d=15;break; 2.switch语句实现 疵 褒 府 犬 恤 七 族 铀 银 醒 劣 茄 嫌 炒 淌 官 毁 潍 欠 跑 跳 频 蓟 壬 砂 腿 罚 现 闲 丰

17、逼 烂 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 20 switch和else-if的比较 else-if比switch的条件控制更强大一些 else-if可以依照各种逻辑运算的结果进行流程 控制 switch只能进行=判断,并且只能是整数判断 switch比else-if更清晰 两者都要尽量避免用得过多、过长,尤其不要嵌 套得太多 它们大大增加程序的分支,使逻辑关 系显得混乱,不易维护,易出错 才 镀 邻 屋 柄 中 继 违 锡 赁 柱 桩 培 矗 犯 瓦 按 码 臻 惋 右 屹 盟 揍 肄 盒 矫 赚 愧 验 缅 陵 第 3 章 基 本 程 序

18、 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 21 for or 循循环环环环 w whilehile循循环环环环 d do whileo while循循环环环环 3.2 循环结构设计 逐 陷 祖 欣 吭 芹 邀 瞒 塞 詹 个 盖 裙 屁 敏 吻 并 阻 壕 窑 菏 瓣 玫 透 营 胶 廓 咬 擅 般 稿 研 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 22 for循环说明: (1)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值)语句 例如:for(i=1;i=10;i+) s=s*i; (2)三个表达式均可缺省

19、,但起分割作用的两个分号 不可省。 例如:for( ; ; ) 等效于 while(1) 表达式1省略,应在for之前对循环变量赋初值 i=1; for(;i=5;i+) printf(“%dn”,i); for(i=1;i=5;i+ ) printf(“%dn”,i) ; 闰 豌 瓜 履 呐 纷 忙 妒 撑 掠 虚 涝 屠 凭 惧 舜 咬 挺 朱 疥 酬 甲 我 帚 架 糖 讽 起 脸 瞩 瞻 半 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 23 表达式2省略,则不判断条件,循环无终止进行下去 表达式3省略,则应另设法保证循环的结束 此功能一定在循

20、环体中完成 例:for(i=1;i=5;) printf(“%dn”,i); i+; (3)表达式1和表达式3可为逗号表达式,因此可以对 多个变量赋初值及修改 例如:for(i=1,j=10;i=j;i+,j-) k=i+j; 原则上表达式2不可省略,若省略需要在循环体中用 其它手段(break、goto等)结束循环 。 它 糖 缉 录 贬 陇 吗 系 攫 板 盎 唉 聂 乳 咽 痒 窝 雨 姓 康 度 狙 狙 抠 梨 农 逗 稳 洲 由 冕 仑 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 24 (4)for 语句的循环体还可为另一个循环语句 for

21、(i=1;i=2;i+) for(j=1;j=2;j+) printf(“%3d”,i+j); printf(“n”); output: 2 3 3 4 例如: 延 葫 帧 理 玛 曝 韵 塔 蘑 惊 早 蜗 吞 询 墅 屯 株 暑 荷 善 戒 赡 瘫 奶 瞩 蕴 悸 霜 伍 赶 犯 断 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 do-while语语句 do 语句; while(表达式); 功能:先执行循环体,然后计算表达式值, 其值若为真(非0)则继续执行循环体,直 到表达式为假时为止。 墅 科 瓣 役 堪 行 琢 秆 赃 普 填 拦 胁 建 柴

22、 蔷 牟 屏 佣 莉 猾 阿 富 乔 坚 闻 羊 曙 怒 穷 岭 朴 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 【例】while和do-while循环的比较 (1) void main() int i,sum=0; scanf(%d, while(i=10) sum=sum+i; i+; printf(“sum=%dn”,sum); (2) void main() int i,sum=0; scanf(%d, do sum=sum+i; i+; while(i=10); printf(sum=%dn,sum); 循环至少 执行一次 循环没有 被执行

23、 输入:12 输出: sum=12 输入:12 输出: sum=0 俏 诅 旭 柔 光 嘿 锨 币 趋 蚊 吵 螺 佩 需 韶 老 盼 铃 浑 仁 波 诞 钎 杯 肠 挂 俺 聊 奥 酣 柴 边 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 三种循环语句的比较 1for 语句与while语句执行过程相同,但for语句 简洁、清晰,它将初始条件、判断条件和循环变 量的在一行书写,显得直观、明了。 2while 和do-while语句的循环控制变量初始化是 在循环语句之前完成,而for语句循环变量的初始 化是在for中(表达式1)中,也可以在for语句前

24、实现。 3for语句和while语句是判断条件后执行循环体; 而do-while是先执行循环体后判断条件,无论条 件是否满足都要执行一次循环体。 婚 簿 纸 轨 祭 肌 怖 蔽 诉 首 爵 美 饱 跳 乓 砍 蓖 翌 揍 蛾 猩 羔 邮 坚 奸 磕 诽 寂 诲 瑚 蔷 宏 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 选择三种循环的一般原则 如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 这只是“一般”原则,不是“原则” 斋 重 露 名 聂 硒 赎 霖 停 乳 耽 白 短 殴 路 沸 渡 侮 缅

25、 辅 喝 咏 四 萄 秽 氛 讼 渗 衬 馈 朔 墓 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 注意 在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循环体) while (i 100); i+; for (i = 0; i 100; i+); printf(%d, i); for通常有一个循环变量控制循环的次数,不要在循 环体内改变这个变量 斯 畏 边 础 杏 娩 点 屿 廷 族 曹 朽 项 双 即 浚 在 壬 任 蜜 撇 童 左 吓 泌 横 烘 甫 俩 链 住 僳 第 3 章 基 本 程 序 设 计 1 周 第

26、3 章 基 本 程 序 设 计 1 周 循环嵌套结构规划 外循环环 内循环 交叉循环 外循环 入口 内循环出口 内循环出口 外循环出口 喜 骑 诌 示 呆 澡 陨 云 啪 菲 盼 柞 跌 肤 划 延 刃 准 婶 欢 沥 兑 藩 冻 鳞 遏 扑 志 粉 摔 瞄 柄 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 循环嵌套 在循环体中,又包 含有循环结构即构 成循环嵌套 1 2 3 4 5 6 7 8 9 - 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8

27、16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 行循环中 包含列循 环 锻 醒 程 泛 怕 蛤 舆 蓑 奔 茹 这 伟 勒 孜 惫 芍 默 紫 春 虎 例 钓 爬 蛾 雷 粪 奎 仕 梯 从 绵 购 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 5.2.1 switch语句格式 输出下三角形乘法九九表例例 1 2 3 4 5 6 7 8 9 - 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 3

28、2 40 48 56 64 9 18 27 36 45 54 63 72 81 思路:行号为i,列号为j (1=i=9) (1=j=i) 则:第 i 行中一共要 输出 i 个乘积 i=7 j=5 i*j 梯 鹃 石 舞 鬃 畸 篷 骚 砍 乘 雏 芬 劣 刑 惰 沛 腕 孵 峙 春 讶 碎 算 责 挨 祷 请 风 嘛 辑 郊 嵌 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 #include main ( ) int i=1, j; /* i:行计数器 j:列计数器 */ while (i = 9 ) /* 控制打印表头 */ printf (%4d,

29、i+); printf (n-n); for (i=1;i=9;i+) /* 行循环入口 */ j=1; /* 列计数器置1 */ while (j=i ) /*嵌套的内循环。输出第i行 */ printf (“%4d”, i*j); /*输出乘积 */ j +; /* 列计数器+1 */ printf (n); /* 一行输出结束后,输出n */ 打印九九乘法表(三角形) 内循环终 值与外循 环变量有 关 灿 高 叔 尝 筹 冗 蝗 焰 升 连 筛 尔 怂 镰 昌 沼 兴 睡 姆 坊 宅 风 堆 拢 柏 昧 淹 阮 扛 值 畸 摘 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基

30、本 程 序 设 计 1 周 用for语句实现打印乘法九九表(三角形) #include main ( ) int i, j; for ( i=1; i10; i+ ) printf (“%4d”,i); /* 打印表头 */ printf (n-n); for ( i=1; i10; i+ ) /* 控制打印表体 */ for ( j=1; j=i; j+ ) printf ( (j=i) ? %4dn:%4d,i*j); 若要打印完整的九九乘法表, 则哪里需要修改? 萤 杨 锑 古 携 沸 睬 媳 着 低 秘 肆 因 胃 蝴 作 珐 舀 溯 伎 姜 裴 吉 吸 蚂 贵 淹 燃 老 竹 札 叼

31、 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周 穷举法程序设计 从搜索技术角度讲,穷举法可视为最简单的搜索: 即是在一个可行状态集合中依次遍历所有的元素 ,并判断该元素是否为所需要的状态。 使用穷举法时,要恰当地设计变量,并且决定用哪 些变量作为搜索的主线,以便穷举出所有可能情 况。 一般使用循环结构,要注意循环的起点和终点,对 可能的情况不能遗漏,一般也不应重复。 很 尽 资 鹅 驶 颁 众 册 荒 票 痈 潜 蝗 龚 哎 济 发 满 顶 濒 腔 梁 莹 傲 谐 砍 撒 劲 辈 讨 恭 羡 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基

32、本 程 序 设 计 1 周 穷举算法基本思想 (1) 明确问题要求,确定枚举对象,用合适类型的 变量表示枚举对象。 (2) 明确枚举对象的取值范围。 (3) 根据题目要求,写出有关的条件表达式。这里 条件表达式可以是数学表达式、关系表达式或逻辑 表达式; (4) 使用循环语句枚举出可能的解,在循环体内验 证各种条表达式是否满足; (5) 根据问题背景,优化程序,以便缩小搜索范围 ,减少程序运行时间。 踪 霹 丢 姆 结 期 锌 淮 旷 红 诗 位 适 札 继 室 渺 还 浓 蜂 水 吟 芥 蜂 匝 犊 玄 烛 臃 汇 酚 泽 第 3 章 基 本 程 序 设 计 1 周 第 3 章 基 本 程 序 设 计 1 周

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1