作业帮 > 综合 > 作业

用VB该如何编写A,B 两个10位的数字,求AB的平均值C,还有和值D.再求C的每位相加的总和,D的每位相加总和.(小数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/03 08:09:18
用VB该如何编写
A,B 两个10位的数字,求AB的平均值C,还有和值D.再求C的每位相加的总和,D的每位相加总和.(小数点后的不做计算).求用VB应该如何写.
楼主参考一下:Option Explicit

Private Function AddNum(ByVal N As Double) As Long
   Dim sNum As String
   Dim S As Long, i As Long
   S = 0: sNum = Fix(N)
   For i = 1 To Len(sNum)
      S = S + Mid$(sNum, i, 1)
   Next
   AddNum = S
End Function

Private Sub Command1_Click()
   Dim A#, B#, C#, D#
   Me.Cls
   Randomize
   A = Fix(1000000000# + 8999999999# * Rnd())
   B = Fix(1000000000# + 8999999999# * Rnd())
   D = A + B
   C = D / 2
   Print "原始值 A = " & A
   Print "原始值 B = " & B
   Print "平均值 C = " & C
   Print " 和值 D = " & D
   Print "C 的整部分之和为:" & AddNum(C)
   Print "D 的整部分之和为:" & AddNum(D)
End Sub
再问: 非常感谢,刚才忘了个步骤,A和B要分别乘以E后,再计算,我加上后,就出现了1.23445E+16,这个怎么解决呢
再答: 计算机中浮点数的“精度”是有限的,当位数过多时,它的“显示结果”一般都用科学计数法表示。 你在提问时,没说什么“E”的问题呀!E是什么样的数? 还有你说的A和B是10位数字,它是连同小数部分一起,共10位吗?   还是象我的回复中那样,就是10位的整数? 象你说的1.23445E+16这样的数,是要把所有整数部分都加起来吗? 要都加起来,应该还是可以解决的。我试下再说。
再问: 再次感谢!问题刚才没有说明白,我在重新下叙述一下。 要输入的A和B,都是9到10位的数字。要输入的E是7到8位。都是整数。 A*E=C ,B*E=D 求CD平均值F ,和值 G 再分别求F和G整数位 相加的和值。 现在出现了C和D的数值都是例如1.23456789E+16 这种数值。导致F和G结果错误。
再答: 对于很大的数,它的有效数字只有15(或16位),
 在科学计数法中,有效数字全部显示出来的了, 如果+后面的数字比前面的数字多(E+xx,就表示共有xx+1位整数),前面的数   字全是整数部分的,后面再用0补齐总位数。用这段代码吧,我刚才已经测试过好多次的了。无论参数大还是小,都能正确计算出它的整数部分之和。Private Function AddNum(ByVal N As Double) As Long
   Dim sNum As String
   Dim S As Long, i As Long
   S = 0: sNum = Format$(Fix(N), 0)
   For i = 1 To Len(sNum)
      S = S + Mid$(sNum, i, 1)
   Next
   AddNum = S
End Function
 
Private Sub Command1_Click()
   Dim A#, B#, C#, D#, E#
   Dim i&, sf$
   Me.Cls
   Randomize
   A = Fix(1000000000# + 8999999999# * Rnd())
   B = Fix(1000000000# + 8999999999# * Rnd())
   'E = 1234567
   E = Fix(1000000000# + 8999999999# * Rnd())
   D = (A + B) * E
   C = D / 2
   Print "原始值 A = " & A
   Print "原始值 B = " & B
   Print "系数值 E = " & E & vbLf
   Print "平均值 C = " & C
   Print " 和值 D = " & D
   Print "C 的整部分之和为:" & AddNum(C)
   Print "D 的整部分之和为:" & AddNum(D)
End Sub万一你发现有什么算错的时候,把具体数值记录一下,我跟踪测试,看原因在哪。
(但我想应该不会有问题了)
再问: 感激不尽,完全没有问题,谢谢!
再答: 嘿嘿