ch05-模块化程序设计-函数.pptVIP

  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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 拿例子讲解整个过程比如6以内的素数 * * * * * * * * * * * * * * * * 读(ch) 读(ch) ch==‘ ’ 滤掉前导空白 翻译整数部分= n 合并 n 、f 处理小数点“.” 翻译小数部分=f 综合上述算法PAD 翻译整数部分 n = 0 返回 n = n*16+ch 读(ch) ch==数字 翻译整数部分 把整数部分表达式整理一下,可以改写成: 读(ch) 读(ch) ch==’ ‘ n = 0 n = n*16+ch 读(ch) ch==数字 翻译整数部分= n 合并 n 、f 处理小数点“.” 翻译小数部分=f 综合上述算法PAD ch== . 翻译小数部分=f 小数点处理 小数点处理 返回 读(ch) 读(ch) ch==’ ‘ n = 0 n = n*16+ch 读(ch) ch==数字 ch== . 翻译小数部分=f 合并 n 、f 处理小数点“.” 翻译小数部分=f 综合上述算法PAD 翻译小数部分 f = 0 ; g = 1.0 返回 读(ch) ch=数字 f=f+g*ch 读(ch) g = g/16 翻译小数部分 考虑翻译小数部分:小数部分表示成: 输出 n 读(ch) 读(ch) ch==’ ‘ n = 0 n = n*16+ch 读(ch) ch==数字 f = n+f 输出 f f = 0 ; g = 1.0 读(ch) ch=数字 f=f+g*ch 读(ch) g = g/16 ch== . 翻译小数部分=f 合并 n 、f 综合上述算法PAD #define radix 16 void main(){ char ch; float g; // 小数部分“位值” int n; // 保存整数部分 float f; // 保存小数部分,和最后实数 /*滤掉前导空白字符*/ ch=getchar( ); while(ch== ) ch=getchar( ); /*翻译整数部分*/ n=0; while( isdigit(ch) ){ n=n*radix + calculate_char(ch) ; ch=getchar( ); } … … … … } void main(){ … … … … if(ch==.){ /*翻译小数部分*/ f=0.0; g=1.0; ch=getchar( ); while( isdigit(ch) ){ g=g/radix; f=f+g* calculate_char(ch) ; ch=getchar( ); } /*整数部分与小数部分合并*/ f=f+n; printf( 该数为实数:%g\n,f ); } else printf(“ 该数为整数:%d\n”,n); } // 计算合法数字字符的数值 int calculate_char(char ch){ if((ch=0)(ch=9)) return (int)ch-0; else if((ch=A)(ch=F)) return (int)ch-A+10; else return (int)ch-a+10; } // 判断ch是否十六进制数字的函数 bool isdigit(char ch){ return (ch=0)(ch=9) ||(ch=A)(ch=F) ||(ch=a)(ch=f); } 运行结果演示 一个十六进制数由以下几部分组成: 1. 前导字符──这部分不是数的成分; 2. 整数部分; 3. 小数点; 4. 小数部分。 解2. 状态矩阵方法 解法1程序也分成这几个阶段。若称每个阶段为一个状态,则十六进制数的处理过程分别在如下四个状态下进行: 1. 处理前导字符状态(s0); 2. 处理整数部分状态(s1); 3. 处理小数点状态(s2); 4. 处理小数部分状态(s3)。 为方便起见再加一个结束状态s4 , 在 s0 状态下, 遇到空白字符,则越过,状态不变; 遇到数字字符,则进行整数部分的翻译拼数,并转到状态 s1 ; 遇到小数点“.”,则转到状态 s2 ,该数为实数; 遇到其他字符,则错误,设为1号错误,转到结束状态s4 。 在 s1 状态下, 遇到数字字符,则进行整数部分的翻译拼数,状态不变

文档评论(0)

与您共享 + 关注
实名认证
服务提供商

我的文档主要集中的行业是石油化工和安全生产,从事石油化工行业并且取得了中级注册安全工程资格。精通炼油工艺方面的工艺、安全、设备。希望通过平台共享自己的知识和经验。

1亿VIP精品文档

相关文档