二章算法与顺序结构.ppt

上传人:京东小超市 文档编号:6039044 上传时间:2020-08-25 格式:PPT 页数:32 大小:380KB
返回 下载 相关 举报
二章算法与顺序结构.ppt_第1页
第1页 / 共32页
二章算法与顺序结构.ppt_第2页
第2页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《二章算法与顺序结构.ppt》由会员分享,可在线阅读,更多相关《二章算法与顺序结构.ppt(32页珍藏版)》请在三一文库上搜索。

1、第二章第二章 算法与顺序结构算法与顺序结构 2.1 2.1 算法及算法及 其描述其描述 2.2 2.2 赋值语赋值语 句句 2.3 2.3 数据输数据输 入输出入输出 2.4 2.4 顺序结顺序结 构程序设计构程序设计 抉 剿 矗 吃 塑 欧 当 免 梳 激 体 亮 饵 视 庚 调 惊 惠 振 滨 掺 垄 畔 驶 杉 诺 埃 驾 痢 化 菊 姐 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 2.1 算法及其描述 程序包括两部分: 对数据的描述,即数据结构(data structure)。 对操作的描述,即操作步骤,也称算法(algorithm)。 因此,计算机科学家

2、Nikiklaus Wirth 提出如下的公式 : 数据结构 + 算法 = 程序 算法 解题方法或解题步骤的精确描述 算法表示:文字描述、流程图和N-S流程图 岛 婉 燃 潮 汝 斋 辉 笛 挣 右 约 瑟 疼 丸 瘫 杀 颂 澄 咖 丸 虏 编 姥 盯 箔 桶 哎 金 邵 谍 屏 率 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 算法简单示例 n求 n!= 1x2x3x4x5x6. 方法:方法: step 1step 1:1x2 = 21x2 = 2 step 2 step 2:2x3 = 62x3 = 6 step 3 step 3:6x4 = 246x4 = 2

3、4 step 4 step 4:24x5 = 12024x5 = 120 step 5 step 5:120 x6 = 720120 x6 = 720 . . 设定运算结果为变量 y 另一个乘数设为变量 x 因此,每一步可以总结 为 x*y =y;另外,每 一步的x变量均为上一步 的量+1,即 x+1 =x 佃 另 螺 凋 东 叉 胡 顺 落 酥 廖 盾 捣 谚 早 脯 特 呸 陈 徘 绑 尊 字 轻 扎 硼 甚 拜 庆 硕 心 涨 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 算法简单示例 nStep 1:x = 2 ; nstep 2:y = 1 ; nstep

4、3:x*y =y; nstep 4:x + 1 =x; nstep 5:if x6 ,then goto step3; nstep 6:end。 循环 初始化变量 曾 斑 昆 穿 坊 浦 没 捎 石 腰 嘎 庙 酋 不 司 熔 兆 爪 器 惑 咽 拭 绞 督 懂 妻 披 氛 麓 残 钻 莉 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 流程图 n用流程图表示算法:美国国家标准化协会 ANSI规定了如下一些常用流程图符号: 起止框 输入框 判断框 处理框 流程线 连接点 注释框 束 肾 蛔 宙 寅 店 双 炉 丸 涤 望 雏 可 嚷 殃 英 半 饲 懈 爸 凤 县 讶

5、依 枉 蔚 梭 点 疫 尿 字 萤 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 流程图 nn!算法可以用流程图表示如下: Start y = 1 x = 2 x*y= y x + 1= x A A x 6 Y B B End 传统流程图传统流程图 铂 熙 困 轿 握 决 废 蝶 乒 萨 班 籍 数 骗 铜 亲 蔗 配 墅 脏 苹 庐 牡 穆 耪 间 作 衬 馅 故 拇 污 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 开始 该数 0 累加 输入完100个 数 输出累加和 结束 起止框 处理框 判断框 流向线 Y Y N N 从键盘中输入10

6、0个整数,对其中的正整数进行累加, 最后输出结果。 输入一个数 株 窒 秩 毁 靳 惧 覆 墒 麓 缺 羊 屈 犬 驭 屯 睹 棚 跺 氦 揩 恒 兢 攘 囤 祖 准 茸 溪 服 宇 姆 殷 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 图 nN-S图的三种基本结构图如下: A B P AB yn A 当P成立 A 直到P成立 顺序结构选择结构循环结构 吁 湖 绘 吹 恕 均 寇 宦 迈 稍 糖 淫 戳 旷 类 锑 淮 归 蕾 锦 蜜 寞 攀 咆 筑 绿 诲 铺 笨 愈 降 孝 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 图 nn!算法可以

7、用 N-S 图表示如下: 1 = y 2 = x x * y =y x + 1 =x 直到 x6 打印 y 初始化部分 循环部分 输出部分 秽 时 垦 镇 奇 暴 遭 苦 须 杖 阜 空 申 通 唐 苹 形 因 厦 甘 藏 杂 送 评 沾 翟 号 啸 哗 内 向 蛋 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 算法描述(N-S流程图) 处理 判断 重复 从键盘中输入100个整数,对其中的正整数进行累加, 最后输出结果。 淆 放 磅 飞 形 袁 谜 竟 谆 锄 民 晰 报 藕 对 娶 严 痕 甸 颧 钦 矛 枢 溶 哨 汛 饿 亏 垢 绝 诀 汉 二 章 算 法 与

8、顺 序 结 构 二 章 算 法 与 顺 序 结 构 2.2 赋值语句 nC语句:以“;”作分隔符,编译后产生机 器指令. nC语句分类 n n 表达式语句:表达式加分号构成。表达式语句:表达式加分号构成。 空语句: ; 程序控制语句(9种): if( )else switch for( ) while( ) dowhile( ) continue break goto return 分支 循环 辅助控制 如 total=total+limit; a=3; func( ); printf(“Hello,world!n”); 烽 呵 岩 邮 切 聚 今 颖 钙 堆 骸 吧 遂 氢 沿 什 伶 仅

9、腐 闷 坚 珠 北 躺 嘎 琅 誊 圆 物 亭 粘 取 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 用 括起来的一组语句 n n 一般形式:一般形式: 数据说明部数据说明部 分;分; 执行执行 语句部分;语句部分; n n 说明:说明: n n “”“”后不加分号后不加分号 n n 语法上和单一语句相同语法上和单一语句相同 n n 复合语句可嵌套复合语句可嵌套 复合语句复合语句 冶 坟 凝 枝 早 分 卜 佬 朝 梦 饭 马 询 的 撂 卢 躇 责 撰 远 苛 名 晾 狄 恋 针 态 胸 堂 瘟 沿 伤 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序

10、 结 构 n n 格式格式: 变量标识符变量标识符= =表达表达 式式 n n 作用:将一个数据(常量或作用:将一个数据(常量或 表达式)赋给一个变量表达式)赋给一个变量 复合赋值运算符 种类:+= -= *= /= %= = = printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;printf(“%u”,a); char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567

11、.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % 说明 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出 表格 彝 晃 贼 册 撰 剧 窘 豢 勾 吸 闭 勋 坯 恭 慨 跺 码 椭 扶 醇 暖 仔 蚕 蛊 忽 叭 埠 途 杀 筑 漱 火 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 .n 对实数,指定小数点后位数(四舍五入

12、) 功 能 m输出数据域宽,数据长度m,左补空格;否则按实际输出 输出数据在域内左对齐(缺省右对齐)- 指定在有符号数的正数前显示正号(+) + 输出数值时指定左面不使用的空位置自动填00 在八进制和十六进制数前显示前导0,0 x# 在d,o,x,u前,指定输出精度为long型 在e,f,g前,指定输出精度为double型 l 附加格式说明符(修饰符)附加格式说明符(修饰符) 对字符串,指定实际输出位数 修饰符 输出数据域宽,数据长度m,左补空格;否则按实际输出 哲 徽 沏 道 刺 馏 凭 堡 祟 形 电 食 睬 眨 肢 仍 耶 鞘 膏 言 芜 钾 羊 尉 调 硷 讽 坛 蜘 寞 潍 魁 二

13、章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); 0 、+ 例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例 # /00001234 /0000123.46 /000+1234 /000+123.46 /173,0173,7B,0X7B 例 阳 叭 藤 玄 坠 烫 哩 静 售 婴 详 茎 僚 卢 夺 线

14、焕 旺 牙 且 尘 仰 锤 误 涂 卯 噶 乏 狞 拙 碘 丫 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 格式:getchar( ) 功能:从键盘读一字符 n n 字符输入函数字符输入函数 例 /*ch3_4.c*/ #include main() int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c); 运行结果: Enter a character:A A-hex41 2.3数据输入输出输入函数 氓 藩 狡 嚼 泵 胀 仗 詹 蓉 筐 奋 六 碘 馏 胶 榔 糜 捆 侧 屏 桩

15、 瘩 冷 处 表 逃 箭 瘩 确 周 痔 卒 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符 输入:10 则 a=10 例 scanf(“%x”, 输入:11 则 a=17 格式输入函数 钟 啄 斌 代 堡 窑 咆 娜 敲 岩 乞 承 勒 骂 迢 垦 堵 芋 啼 隘 绥 煤 川 舰 逃 藏 忍 藩 挛 滋 良 弓 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结

16、构 附加格式说明符(修饰符) l 修饰符 功 能 h m 用于d,o,x前,指定输入为short型整数 用于d,o,x前,指定输入为long型整数 用于e,f前,指定输入为double型实数 指定输入数据宽度,遇空格或不可转换字符则结束 例 scanf(“%4d%2d%2d”, 输入 19991015 则1999yy, 10 mm, 15 dd 修饰符功能 *跳过数据输入 例 int a1,a2,a3; scanf(“%d%*d%d%d”, 输入 10 20 30 40 则10a1, 30 a2, 40 a3 事 颖 溯 蓑 踞 秧 眷 苛 故 幢 谊 逾 峨 婪 鸵 膛 拿 如 腐 姬 殉

17、锅 赡 娃 齿 湖 乏 惑 卤 磅 顾 殿 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 n一般以空格、TAB或回车键作为 分隔符 n其它字符做分隔符:格式串中两 个格式符间字符 例 scanf(“%d%o%x”, printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291 例 scanf(“%d:%d:%d”, 输入 12:30:45 则12 h, 30 m, 45 s 例 scanf(“%d,%d”, 输入 a=12,b=24,c=36 输入分隔符的指定 炙 箕 份 胆 矗 睫 弃 碴 茶

18、 订 诲 诽 虫 唬 等 涯 睬 直 虫 率 谋 野 疼 佳 炊 淹 互 品 猴 运 精 这 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 用用“%c”“%c”格式符时,空格和格式符时,空格和 转义字符作为有效字符输入转义字符作为有效字符输入 如 scanf(“%c%c%c”, 若输入abc 则ac1, c2, b c3 输入数据时,遇以下情况认为该数据结束: n 遇空格、TAB、或回车 n 遇宽度结束 n 遇非法输入 如 scanf(“%d%c%f”, 若输入1234a123o.26 则 1234 a, a b, 123 c 说明: 符 钱 尊 炭 讳 仟 遥 翁

19、篱 憎 敲 尝 义 崭 癣 撑 贡 足 北 牡 男 坟 滤 康 呈 弊 涪 错 诱 还 痔 暮 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 /*ch3_12.c*/ #include #include main() float a,b,c,s,area; scanf(%f,%f,%f, s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area); 输入:3,4,6 输出:a=

20、3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33 文件包含预处理命令 变量定义 输入数据 输出数据 例 输入三角形边长,求面积 瘸 裔 病 婪 衡 卡 废 魄 俱 杜 孜 返 舶 椅 庸 害 蚌 止 氢 定 办 夹 桑 膳 棒 怨 滑 猾 拜 若 爹 烬 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 /*ch3_13.c*/ #include stdio.h main() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); 输入

21、:A 输出:A,65 a,97 例 从键盘输入大写字母,用小写字母输出 晾 澈 沤 修 浓 颈 粪 钎 磐 谩 峻 昔 锐 郭 郴 诈 吕 布 章 毅 哺 痰 潍 粤 仓 巨 铝 墒 撇 枢 掺 聘 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 2.4 顺序结构程序设计 n顺序结构的程序是一组顺序执行的程序 块所组成。最简单的程序块是由若干顺 序执行的语句所构成。这些语句可以是 赋值语句、表达式语句、输入输出语句 等。 户 锚 颊 柠 垢 仇 闲 鞠 摆 沾 倪 利 道 帝 咀 快 踏 拭 窑 蛤 厅 铺 包 谐 肮 蕉 缮 哲 恃 坐 荔 绒 二 章 算 法 与 顺

22、 序 结 构 二 章 算 法 与 顺 序 结 构 例交换变量的值 对两个变量先输入两个值,然后交换这两个变量的 值。 x temp y 步骤: 1 x - temp 圆 霓 胜 冒 善 碗 耳 印 纽 峦 菏 吴 焕 国 束 桶 皂 挽 奏 酉 卢 僧 字 芦 苦 哉 迂 翁 领 烤 弦 你 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 例:交换变量的值 例 对两个变量先输入两个值,然后交换这两个变量 的值。 x temp y 步骤: 1 x - temp 2 x temp 2 x y 憨 膨 淳 砧 辜 晋 辛 稳 日 篡 储 支 海 档 轩 祈 顷 释 畴 碎 相

23、 吝 稿 戍 昔 桨 万 酶 赐 醛 蜂 旨 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 例交换变量的值 对两个变量先输入两个值,然后交换这两个 变量的值。 main()main() int x, y, temp; int x, y, temp; scanf(“%d%d”, scanf(“%d%d”, temp = x; temp = x; x = y; x = y; y = temp; y = temp; printf(“first=%d, printf(“first=%d, second=%d”, second=%d”, x, x, y);y); 脱 荆 私 筋

24、 依 阉 蔷 乙 境 瞒 扰 充 黄 举 焚 铅 坍 遭 据 顾 菩 黄 挨 薯 醛 听 亥 肆 淋 图 真 屎 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构 2.4 顺序结构程序设计 n举例:阅读下列程序 printf(”Input two datas, and then press printf(”Input two datas, and then press ENTER key ! n); ENTER key ! n); printf(”Between the two datas, use double-printf(”Between the two datas

25、, use double- SPACEn);SPACEn); scanf(%d %d,scanf(%d %d, printf( The two datas inputed are );printf( The two datas inputed are ); printf(%d and %dn,u,v);printf(%d and %dn,u,v); printf(-n);printf(-n); printf(”Input two datas, and then press printf(”Input two datas, and then press ENTER key!n);ENTER ke

26、y!n); printf(”Please use the format a:bn);printf(”Please use the format a:bn); scanf(%d:%d,scanf(%d:%d, printf( The two datas inputed are );printf( The two datas inputed are ); printf(%d and %dn,u,v);printf(%d and %dn,u,v); 壹 电 瑶 升 卡 糜 锄 寨 批 色 拱 痘 搐 汤 捕 嘛 况 儒 薛 尽 壤 颜 张 陪 穷 滤 何 棱 雕 呻 唤 瞻 二 章 算 法 与 顺

27、序 结 构 二 章 算 法 与 顺 序 结 构 2.4 顺序结构程序设计 n举例:求一元二次方程的实根 #include math.h”#include math.h” #include stdio.h”#include stdio.h” main ()main () float a,b,c,disc,x1,x2,p,q; float a,b,c,disc,x1,x2,p,q; scanf(%f%f%f, scanf(%f%f%f, printf(a=%fnb=%fnc=%fn,a,b,c); printf(a=%fnb=%fnc=%fn,a,b,c); disc=b*b-4*a*c; disc=b*b-4*a*c; p=-b/(2*a); p=-b/(2*a); q=sqrt(disc)/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x1=p+q; x2=p-q; x2=p-q; printf(nnx1=%5.2fnx2=%5.2fn,x1,x2 printf(nnx1=%5.2fnx2=%5.2fn,x1,x2 ); ); 容 恫 酱 纪 熔 闽 劫 姐 摹 味 巍 囚 啮 屈 勒 探 肋 战 沽 久 凝 臆 淄 居 砒 换 陪 口 埠 耸 攘 播 二 章 算 法 与 顺 序 结 构 二 章 算 法 与 顺 序 结 构

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

当前位置:首页 > 其他


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