- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据与计算科学基础;第7章 数据计算;;;7.1.3. 常用的字段计算;(1) IF函数介绍
逻辑判断函数,判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值。语法格式如下:
IF(logical_test,value_if_true,value_if_false)
参数说明:
logical_test: 任何可能被计算为TRUE或FALSE的逻辑表达式。
value_if_true: 指logical_test为TRUE时的返回值。
value_if_false: 指logical_test为FALSE时的返回值。
(2) 应用案例
;7.1.3. 常用的字段计算;7.1.3. 常用的字段计算;7.1.3. 常用的字段计算;7.1.3. 常用的字段计算;7.1.3. 常用的字段???算;7.1.3. 常用的字段计算;7.1.3. 常用的字段计算;7.2.1 数制转换的递推计算;7.2.1 正整数转换为原码、反码和补码的递推计算;2.十进制整数转换为R进制整数反码
反码也是用一半较小的数来表示0和正整数,用另一半较大的数来表示-0和负整数,它和原码不同的是负数的编码正好相反。对于R进制来说,如果有m个不同的表示状态,反码表示如表7-2所示。
;3.十进制整数转换为R进制整数补码
补码也是用一半较小的数来表示0和正整数,用另一半较大的数来表示负整数。它和反码不同的是解决了-0问题,同时可以多表示一个负数。对于R进制来说,如果有m个不同的表示状态,补码表示如表7-3所示。
;7.3.1 递推计算;7.3.1 递推计算;7.3.1 递推计算;;7.3.2 二分法;7.3.2 二分法;7.3.2 二分法;2.二分法求幂
用乘法计算x的整数次幂f(x,n)归约为
使用递推算法,要做n次乘法运算。运用二分法计算,只需做log2 n次乘法运算。算法过程如表7-4、图7-11所示,将xn 表达为f(x, n)。
;7.3.3 贪心算法;7.4.1 排序算法演示
7.4.2 频数计算
7.4.3 工作日计算
;排序是程序设计中常用的算法,一般通过数组来实现排序。利用Excel中的单元格和VBA代码可将排序过程动态地显示出来,而且速度可由用户自己控制,具有直观、形象的特点,有利于用户加深对排序算法的理解。实现步骤如下。
步骤1:启动Excel,依次单击“开发工具”→“代码”→“宏”按钮,打开“宏”对话框。
步骤2:创建宏“Randint”,在区域A1:A10中生成10个随机整数,输入以下代码。
Randomize
For i = 1 To 10
??Cells(i, 1) = Int(Rnd * 100)
Next
;步骤3:创建宏“SelSort”,用于实现对区域中的10个整数进行升序排序(冒泡排序),输入以下代码。
For i = 1 To 10 - 1
??For j = 1 To 10 - i
????If Cells(j, 1) Cells(j + 1, 1) Then
???????temp = Cells(j, 1)
????????Cells(j, 1) = Cells(j + 1, 1)
???????Cells(j + 1, 1) = temp
???????Application.Wait Now() + CDate(00:00:01)
????End If
??Next
Next
MsgBox 排序完毕!
步骤4:执行宏“Randint”,可看到自动生成的10个随机整数。
步骤5:执行宏“SelSort”,可看到动态排序过程。
;(1)函数介绍
在7.1节的字段计算中,介绍了计算频数的FREQUENCY数组函数,它用一个数组公式即可轻松地统计出各分数段的人数分布。该函数以一列垂直数组返回某个区域中数据的频数,由于其结果返回一个数组,因此必须以数组公式的形式输入。如果以60、70、80、90作为间隔点,那么统计产生的是区间[0, 60]、(60, 70]、(70, 80]、(80, 90]、(90, 100]的频数。60被统计在[0, 60]这个区间内,也就是说60被统计在不及格的区间内,而实际希望得到的结果应该是区间[0, 60)、[60, 70)、[70, 80)、[80, 90)、[90, 100]的频数。当然在实际应用时,可以把间隔点改为59、69、79、89,显然这是一种变通的办法。
(2)通过VBA编程重新定义频数计算函数
【例7.6】以60、70、80、90作为间隔点,用VBA为Excel重新编写一个频数计算函数。
;Function myfrequency(data_array As Range, bins_array As Range)
原创力文档


文档评论(0)