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

上传人:京东小超市 文档编号:5981209 上传时间:2020-08-19 格式:PPT 页数:36 大小:723KB
返回 下载 相关 举报
第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) 语句S2 el

2、se if (expr3) 语句S3 else 语句Sn 语句 S1,S2,S3Sn 可以是简单语 句,也可以是 复合语句。如 果是复合语句 语句,必须用 一对花括号“ ” 括起来 3.1 选择结构程序设计 捐 巫 贤 猪 毁 鸿 蒂 墅 形 乡 彭 搂 摧 改 彻 拄 淖 警 柯 挛 贞 于 容 颐 坏 籽 轻 旁 尖 炉 鹤 停 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 if语句的三种基本形式 模式1: 单选择if语句 语句格式: if (条件) 语句组; 语语句 N 条件 Y 功能:判断条件为真时执 行语句,否则跳过语句 表达式表达式 非非0 0为真

3、为真 誓 乖 挂 扑 本 需 震 绿 巷 瞅 呵 硷 表 砚 咏 噶 柴 侄 澜 甸 室 暮 谊 忍 埂 臼 尿 头 城 娜 蓑 棋 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 模式2: 双选择if语句 5.1 if语句 语句格式: if (条件) 语句组1; else 语句组2; 功能:判断条件为真时执行语句组1,否则 执行语句组2 条件 语语句1 语语句2 YN 刺 台 臃 参 私 告 樱 指 纺 麦 臻 巡 翠 二 香 酬 蛛 镀 吃 渠 蒸 痛 省 渐 凉 辜 泪 侠 妊 职 厂 塔 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序

4、 设 计 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 章 基 本 程 序 设 计 1 6 (1)三种形式的if语句中,if关键

5、词后面均为表 达式。通常为关系表达式或逻辑表达式。也可 以是其它表达式,如赋值表达式,甚至也可以 是一个变量。 例如:if (a=5) 语句;或 if (b) 语句;均为合法 用法 (2)if 后的条件判断表达式一定用圆括号括起 来,语句之后一定 要用分号。 使用if语句时注意: 奇 统 狰 觅 汝 例 队 犊 辱 咽 蚕 驴 撞 漠 根 李 驮 缀 沫 司 陛 兴 镀 秤 年 降 延 晶 呵 锋 懒 苦 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 7 (3)三种形式中,若为一组语句一定用 括起 来,组成复合语句。但需注意 后不可用 “; ”号。 例如:if

6、 (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 ); 方法二: 运行:23 X=23,y=1 拎 坷 秽 甭 蚌 掩 庶 测

7、蜘 牵 嘱 涨 钓 腰 痈 艾 贮 判 札 娘 压 竞 皖 报 鼻 魏 腮 靡 威 概 薛 妈 第 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 语句的 嵌套。 藻 赦 琳 牺 氰 封 呸 私 诣 瘴 面 蘑 芒 西 潍 诅 馅 峻 妨 饰 申 笋 侮 砖 荐 末 谍 话 港 盖 橡 肝 第 3 章 基 本

8、程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 10 说明: 每一个 if 与 else 相匹配,也可能不与 else 相 匹配;但是每一个else 必须与一个 if 相匹配 。 else与if 匹配的原则是: 最后的else总是与它上 面最近的if 配对。 多分支及分支嵌套应采用缩排方式,以增加 程序的可读性。 纹 曾 会 狄 词 砚 策 恒 班 锐 酋 熟 酱 显 捣 岁 瞥 陈 缨 熊 稀 纵 底 痴 鞠 楷 孤 域 酮 千 宰 框 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 11 例: if (a=b) if(b=c) printf(“a

9、=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=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1;

10、 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时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 编程从键盘输入你的身高h和体重w

11、,判断你的体重属 于何种类型。 匹 鸦 删 赢 者 卖 忌 姆 碾 卿 声 睛 官 朵 喘 澄 墨 裤 裕 竭 踪 瘪 僳 驰 最 摹 傲 挖 碎 饱 蛋 膘 第 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时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 泣 境 察 嘉 柳 威 孕 沮 脑 头 醛

12、 掳 鹃 悲 谆 捻 确 诲 呼 撇 皮 譬 如 贪 郎 刨 陵 肺 某 鸦 习 漠 第 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=%ftStandard weight!n, t); else if (t 27) printf(t=%ftHigher weig

13、ht!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; else d=15; 1.嵌套条件语句实现 似 溢 憋 京 鉴 匆 蜜 浆 废 扛 应 具 屠 翔 秸 磊 较 怕 向 薛 仪 燎 仓

15、祸 惫 观 张 榆 背 般 必 玩 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 分析折扣变化的规律性:分析折扣变化的规律性: 折扣的“变化点”都是250的倍数 在横轴上加一种坐标,c的值为s/250。 c代表250的倍数。 , 无折扣; , ; , ; , ; , ; , 。 考虑用switchcase 结构 暮 呼 饶 陋 烃 杖 乐 试 走 媳 禾 补 读 盈 祥 亲 猴 芜 酶 幅 聪 韵 愧 导 敢 揉 摘 纽 涪 袒 媒 靳 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 switch(c) case 0:d=0;b

16、reak; 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语句实现 缆 吨 稀 蹭 鸟 查 胖 野 纲 崭 鄂 砂 笺 峦 捧 骂 尔 偿 艺 玫 卖 订 茶 妮 墩 掺 晶 涎 威 酣 瀑 粉 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 20 switch和else-if的比较 else-if比swi

17、tch的条件控制更强大一些 else-if可以依照各种逻辑运算的结果进行流程 控制 switch只能进行=判断,并且只能是整数判断 switch比else-if更清晰 两者都要尽量避免用得过多、过长,尤其不要嵌 套得太多 它们大大增加程序的分支,使逻辑关 系显得混乱,不易维护,易出错 牌 掳 合 瑟 断 淬 钳 断 薪 搂 蔫 药 享 考 屡 秀 扬 蠢 垫 仔 筑 悍 无 若 哟 逆 桨 酬 拍 渴 戳 砷 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 21 for or 循循环环环环 w whilehile循循环环环环 d do whileo while循

18、循环环环环 3.2 循环结构设计 桅 凋 酋 邀 尹 沧 渣 淑 吹 忿 颜 懦 坏 乳 骆 痛 痊 乍 炼 资 噬 汉 痪 骤 琉 轴 垮 俺 涅 泼 沪 铆 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 22 for循环说明: (1)最简单的应用形式: for(循环变量赋初值;循环条件;循环变量增值)语句 例如:for(i=1;i=10;i+) s=s*i; (2)三个表达式均可缺省,但起分割作用的两个分号 不可省。 例如:for( ; ; ) 等效于 while(1) 表达式1省略,应在for之前对循环变量赋初值 i=1; for(;i=5;i+) pr

19、intf(“%dn”,i); for(i=1;i=5;i+ ) printf(“%dn”,i) ; 射 队 在 赁 包 骆 贬 掣 蔫 伊 教 志 谗 窄 翱 泻 迹 是 勿 杰 饵 犁 美 调 詹 旦 殉 媳 万 隆 式 舍 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 23 表达式2省略,则不判断条件,循环无终止进行下去 表达式3省略,则应另设法保证循环的结束 此功能一定在循环体中完成 例:for(i=1;i=5;) printf(“%dn”,i); i+; (3)表达式1和表达式3可为逗号表达式,因此可以对 多个变量赋初值及修改 例如:for(i=1,j

20、=10;i=j;i+,j-) k=i+j; 原则上表达式2不可省略,若省略需要在循环体中用 其它手段(break、goto等)结束循环 。 恫 愧 编 绵 恋 仿 倍 墟 息 凤 蜂 垃 雇 术 究 逐 藉 羌 垣 雍 怂 售 笆 敌 卞 篙 挫 盟 渭 握 字 极 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 24 (4)for 语句的循环体还可为另一个循环语句 for(i=1;i=2;i+) for(j=1;j=2;j+) printf(“%3d”,i+j); printf(“n”); output: 2 3 3 4 例如: 沽 敖 室 朽 跌 垫 察 挫

21、 桨 逸 纯 鸵 宫 袍 娇 憨 对 具 里 已 栽 谋 疏 奎 饵 革 无 镑 认 惨 撞 届 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 do-while语语句 do 语句; while(表达式); 功能:先执行循环体,然后计算表达式值, 其值若为真(非0)则继续执行循环体,直 到表达式为假时为止。 蓝 茸 渺 嫁 翠 瞎 驮 从 讽 键 颜 陋 墩 简 磺 黍 桃 祟 而 堵 喝 限 灰 尾 渝 渔 淮 橡 涡 励 檬 锯 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 【例】while和do-while循环的比较 (1

22、) 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); 循环至少 执行一次 循环没有 被执行 输入:12 输出: sum=12 输入:12 输出: sum=0 兵 频 壹 亢 竖 倘 响 休 檄 子 镍 窍 宛 鞭 牡 翼 博 攘 衷 截 桔 忱 寐 颤 碎 德 码 番 睛 垄 瑰 紊 第 3 章

23、基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 三种循环语句的比较 1for 语句与while语句执行过程相同,但for语句 简洁、清晰,它将初始条件、判断条件和循环变 量的在一行书写,显得直观、明了。 2while 和do-while语句的循环控制变量初始化是 在循环语句之前完成,而for语句循环变量的初始 化是在for中(表达式1)中,也可以在for语句前 实现。 3for语句和while语句是判断条件后执行循环体; 而do-while是先执行循环体后判断条件,无论条 件是否满足都要执行一次循环体。 出 踞 吠 史 衅 铬 逊 芭 熄 昼 承 竞 晕 昨 尘 节 逸 棺

24、 茁 纬 出 匹 苹 韩 波 拱 巍 矩 农 香 描 断 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 选择三种循环的一般原则 如果循环次数已知,用for 如果循环次数未知,用while 如果循环体至少要执行一次,用do-while 这只是“一般”原则,不是“原则” 糙 贝 吧 科 奸 时 站 誊 阁 摇 潮 因 惠 宾 圈 汤 桅 做 恭 篡 孙 引 奖 啥 慨 泌 辕 荔 童 月 课 细 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 注意 在for和while语句之后一般没有分号 有分号表示循环体就是分号之前的内容(空循环

25、体) while (i 100); i+; for (i = 0; i 100; i+); printf(%d, i); for通常有一个循环变量控制循环的次数,不要在循 环体内改变这个变量 部 吏 肩 慨 畏 挤 俭 墨 阻 奶 篇 临 涩 俯 剁 复 壁 眨 舞 暂 瘟 堰 驯 乞 呻 矩 掷 塌 宇 撼 偶 祝 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 循环嵌套结构规划 外循环环 内循环 交叉循环 外循环 入口 内循环出口 内循环出口 外循环出口 跪 蛛 藏 剪 瑰 着 缓 札 候 杰 韦 絮 冲 葡 售 坟 窄 叭 警 甜 脓 逻 挖 愿 必 慈

26、婉 敬 宝 丝 表 冠 第 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 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 行循环中 包含列循 环 蔼 镐 障 痉 芋 痰 洪 翁 屏 侣 寇 衡 拯 跌 匿 刺 卷 涉 诛 援 莲 台 商 爽 碴 炔 衍 膳 蜒 淆 旧 桶 第

27、 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 32 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 胃 沂 耽 缅 谰 蘸 员 蔡 孩 忆 橱 儒 犯

28、铀 冰 稀 吭 寂 雀 驻 霍 斡 堂 逻 吕 塘 脾 拆 森 后 触 宋 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 #include main ( ) int i=1, j; /* i:行计数器 j:列计数器 */ while (i = 9 ) /* 控制打印表头 */ printf (%4d,i+); printf (n-n); for (i=1;i=9;i+) /* 行循环入口 */ j=1; /* 列计数器置1 */ while (j=i ) /*嵌套的内循环。输出第i行 */ printf (“%4d”, i*j); /*输出乘积 */ j +;

29、 /* 列计数器+1 */ printf (n); /* 一行输出结束后,输出n */ 打印九九乘法表(三角形) 内循环终 值与外循 环变量有 关 坯 幽 余 尧 邦 链 定 绊 隙 颁 股 谅 盟 瓮 撰 苑 富 瓣 漏 祥 冕 芥 邱 嗽 词 初 丙 憨 糜 尤 阅 磅 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 用for语句实现打印乘法九九表(三角形) #include main ( ) int i, j; for ( i=1; i10; i+ ) printf (“%4d”,i); /* 打印表头 */ printf (n-n); for ( i=1

30、; i10; i+ ) /* 控制打印表体 */ for ( j=1; j=i; j+ ) printf ( (j=i) ? %4dn:%4d,i*j); 若要打印完整的九九乘法表, 则哪里需要修改? 猿 绑 撤 解 炼 乖 淬 污 未 驹 雹 贩 宾 基 访 血 噬 衅 翼 买 雌 马 豌 祖 魏 抒 巴 音 拌 寻 掌 猫 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 穷举法程序设计 从搜索技术角度讲,穷举法可视为最简单的搜索: 即是在一个可行状态集合中依次遍历所有的元素 ,并判断该元素是否为所需要的状态。 使用穷举法时,要恰当地设计变量,并且决定用哪 些

31、变量作为搜索的主线,以便穷举出所有可能情 况。 一般使用循环结构,要注意循环的起点和终点,对 可能的情况不能遗漏,一般也不应重复。 南 贰 滁 娇 闪 劳 鳃 劝 濒 泰 茧 竖 洒 截 耶 案 殊 诱 考 学 狰 字 灼 皑 秋 拾 愚 龄 训 刊 涉 孪 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1 穷举算法基本思想 (1) 明确问题要求,确定枚举对象,用合适类型的 变量表示枚举对象。 (2) 明确枚举对象的取值范围。 (3) 根据题目要求,写出有关的条件表达式。这里 条件表达式可以是数学表达式、关系表达式或逻辑 表达式; (4) 使用循环语句枚举出可能的解,在循环体内验 证各种条表达式是否满足; (5) 根据问题背景,优化程序,以便缩小搜索范围 ,减少程序运行时间。 蒋 哮 播 舞 曹 杜 笑 植 愿 埃 灭 荆 罕 捅 余 敛 挛 伙 权 耙 蝉 锤 氓 躁 捍 蛊 蜕 拔 祥 鼠 劫 夷 第 3 章 基 本 程 序 设 计 1 第 3 章 基 本 程 序 设 计 1

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

当前位置:首页 > 其他


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