- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]chapter01 简介
* 2.确定性 算法中的每一步骤应当是确定的,而不应当是含糊的、模拟两可的. 分析表达式: sum=sum+x 在当前表达式中使用到的变量都应该有确定的数据. * 3.有效性 算法中的每一步骤是否能被执行. 分析步骤: x=5! 运算符!无效. * 4.有零个或多个输入. 所谓输入是指在程序的运行中,暂时停下来,向键盘(或磁盘中的数据文件)读取数据. 该功能属于可选项. * 5.有零个或多个输出. 通过输出,将经过程序处理的有用数据告诉用户. 一般的程序应该有该功能项. * 1.7 算法设计和描述举例 例: 求两个正整数mn0的最大公约数. 输入m,n r=n r%m!=0或r%n!=0 r=r-1 输出n 输入m,n (r=m%n)!=0 m=n,n=r 输出n 用26,8验算一下 用27,5验算一下 * 与GCD(m,n)类似的计算问题,不同进制整数之间的转换: (m)10=(riri-1…r0)n 也要用到辗转相除的算法.(为简化问题设1n10) 输入m,n m!=0 i=0 q=m/n, r[i]=m%n m=q, i=i+1 i=i-1 i=0 输出r[i] , i=i-1 R[16]=“ 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f ” R[ r[i] ] * 输入2个数值,按先大后小的次序输出. 输入 a1 , a2 输出 a1 , a2 如果(a1a2) 就a1与a2交换 在多个变量的数据排序中经常用到二变量之间交换存储的数据 a1a2 Y N t=a1 a1=a2 a2=t 输入a1,a2 输出a1,a2 * 分析下面各算法的输出数值: a=3 b=5 a=a+b b=a-b a=a-b 输出a,b a=3 b=5 t=a a=b b=t 输出a,b (1) (2) * 通过余数r来判别a的”奇偶”性. 输入a b=2 r=a%b r ≠ 0 输出a是奇数 Y N 输出a是偶数 分析下面对余数r1、r2和r3的判别算法. 对‘?’选用‘leap year’或‘not leap year’替换. r1=y%4,r2=y%100,r3=y%400 输入y (r1==0且r2≠0)或(r3==0) 输出y是? Y N 输出y是? r1=y%4,r2=y%100,r3=y%400 * 分析下面顺序结构的流程图算法. 试写出各变量的值. r1=y%4,r2=y%100,r3=y%400 x=496 输出x,n1,n2,n3 x=x/10 n1=x%10 n2=x%10 x=x/10 n3=x%10 如果换为输入x 后面的算法仍然有意义的话 输入的x值应该满足100≤x≤999 * 分析下面顺序和循环结构的流程图算法. 试写出输出时变量的值. r1=y%4,r2=y%100,r3=y%400 x=496 输出n值和换行 x ≠ 0 n=x%10 x=x/10 如果换为输入x 后面的算法仍然有意义 * P24 习 题 二 (2.4中的(5)小题) sum=0 n=1 3. 当n ≤100时 3-1 sum=sum+1/n 3-2 n=n+1 4. 输出 sum sum=0 n=1 n ≤100 sum=sum+1/n n=n+1 输出 sum * 算法 通过某语言的程序设计来描述算法 语言处理环境 * 1946年,第一台电子计算机问世,应用领域迅速扩大,软硬件飞速发展,程序设计语言相继问世。 程序设计语言:将自然语言形式化为有格式的语言 1。机器语言: 计算机能够认识的语言 计算机的基础是数字电路 机器语言就是数字电路里的电信号 将在《计算机组成》课程中学习 都是二进制文件 一条机器语言成为一条指令 指令是不可分割的最小功能单元 定义:一种CPU的指令系统,由该CPU可识别的0、1序列构成的指令码组成。 特点: 执行效率高 不直观,不易查错,生产效率低。 2。汇编语言 定义:用助记符号描述的指令系统 特点: 生产效率高,质量好,执行效率较高; 要经汇编程序汇编成目标程序(机器语言)才能执行,依赖硬件。 (面向机器的语言----依CPU不同而异) 3。高级语言 特点: 编程效率高,不必考虑硬件; 执行效率低,要经编译、连接后才能执行。 面向过程的程序设计语言 认为解题过程是数据被加工的过程 程序=数据结构+算法 C语言是面向过程的高级语言 面向对象的程序设计语言 一种结构模拟方法。认为:现实世界由对象组成,对象是数据和方法的封装体;客观世界可以分类,每个对象是类的一
文档评论(0)