数的进制、拓扑排序、关键路径【信息技术】.docVIP

数的进制、拓扑排序、关键路径【信息技术】.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录 一、数的进制转换 1 二、拓扑排序(A0V网) 5 三、关键路径(A0E网) 7 一、数的进制转换 数的进制的概念: 日常生活中我们计数的方式有很多,如一年有12个月,则是12进制,一周有7天,则是7进制,等等。实际都是我们人为规定的,而平常我们用的最多的最习惯的是10进制,是因为我们古人留下来的财富,而古人是因为有10个手指便于帮助计数。需要强调的是任何一个值都可以用任何一种进制描述,但它的值是不变的,正如我们今天在一周中可以描述为星期几,在一月中描述为多少号一样。 使用R进制计数的规则: 只使用R个基数:0,1,2,……,R-1; 逢R进一,退一当R进行数的运算。 R进制数转化为十进制数 这个转化问题较简单,根据上面讲的R进制的计数规则进行展开就得到相应的十进制数的表示方法。 (anan-1……a1a0.a-1a-2……a-m)……+a1*R1+a0*R0+a-1*R-1+a-2*R-2+……+a-m*R-m = 十进制数转化为R进制数 由于十进制数的整数与小数转化为R进制的方法不同,所以必须分开讨论。先看十进制整数的转化,再讨论十进制小数的转化,最后讨论-R进制的计数及转化问题。 十进制整数的转化 通过具体实例进行分析,如对十进制数325转化,根据原理可以按下式这样假设: (325)10=3*102+2*101+5*100 =(anan-1……a1a0)……+a1*R1+a0*R0 =(an*Rn-1+an-1*Rn-2+……+a1)*R+a0 两边同时除以R,得到整数部分和整数部分相等,余数和余数相等,显然右边的余数就是a0,再进行同样的处理就得到a1,一直这样进行下去,直到左边的数为0是为止,由于先求出的是R进制的最低位,再按求解过程倒过来写出就得到相应的R进制数。 以R=6为例,看转化的过程: (325)10=(1301)6 最后,得到的规律就是“除R取余”。 设:任意进制为x,十进制数为y则其算法模式是: : t:=t+1; y mod x 的余数:a(t) y:=y div x y=0为止. a(t)最高位到第一位a(1). ……a-m)……+a-m*R-m =(a-1+a-2*R-1+……+a-m*R-m+1)*R-1 两边同时乘以R,等式两边的整数部分和小数部分分别相等,显然右边的整数部分就是a-1,再去掉等式的整数部分,然后进行相同的处理,就求得了a-2,一直进行下去,直到左边的值为0时或到要求的精度为止,这样就将十进制小数转化为相应的R进制数了。 以R=2为例,说明求解过程: (0.375)10=(0.011)2 最后得到的规律就是“乘R取整”。 例1不同进制数之间实数转换的通用程序。 输入n进制的数m与要转换的p进制的输出。 如: 输入一个数m : ABC.CBA 输入此数的进制n : 16 输入要转换成的数的进制p : 2 输出: ABC.ABC(16)=101010111100.11001011101(2) 【程序清单】 PROGRAM p1; TYPE ss=STRING[30]; VAR m,m1,a,s:ss; m0,n,p,i,j,t,s1,x:Integer; mm,d:LongInt; mr:Real; PROCEDURE Zhuan(ch:Char); {过程—数字符转换成数} BEGIN j:=Ord(ch)-48; {数字符转换成数} IF ch IN [A..F] THEN j:=j-7; {数字符转换成数} IF (j0) AND (j=n) THEN {出界输出出错信息,程序终止} BEGIN Writeln(Data errer !); Readln; EXIT END; END; PROCEDURE Xiao(m:ss); {过程—小数部分的转换} BEGIN mr:=0; m0:=Length(m); t:=n; {初始化} IF n=10 THEN Val(m,mr,t) ELSE {如是十进制数,就直接把数串转换成数} FOR i:=2 TO m0 DO BEGIN {否则把m,先转换成十进制小数,m[1]是小数点} Zhuan(m[i]); {调用字符转为数的过程} mr:=mr+j/t; t:=t*n {按权一一展开,累加到mr中} END; m:=.; {再把mr

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档