一个数学公式在VB中的实现问题
nRc=A*∑{Tx*V*(1-Px)}x=1其中A,n,Tx,V都是整数,Px是0%-100%的百分数现在想做一个计算器,先输入n的值,然后可以输入Tx和Px,最后输入...
n
Rc= A * ∑ {Tx*V*(1-Px)}
x=1
其中A,n,Tx,V都是整数,Px是0%-100%的百分数
现在想做一个计算器,先输入n的值,然后可以输入 Tx和Px,最后输入A,V的值计算出Rc
做个比方,n=2 A=5, v=4 因为n=2所以 T1=4 T2=5 P1=30% P2=50%
公式就为 Rc= 5*[4*4*70%]+5*[5*4*50%]
比较复杂,不知道有没有人能点拨下~~
公式如图~ 展开
Rc= A * ∑ {Tx*V*(1-Px)}
x=1
其中A,n,Tx,V都是整数,Px是0%-100%的百分数
现在想做一个计算器,先输入n的值,然后可以输入 Tx和Px,最后输入A,V的值计算出Rc
做个比方,n=2 A=5, v=4 因为n=2所以 T1=4 T2=5 P1=30% P2=50%
公式就为 Rc= 5*[4*4*70%]+5*[5*4*50%]
比较复杂,不知道有没有人能点拨下~~
公式如图~ 展开
展开全部
1.公式转换为Rc= A * V * ∑ {Tx*(1-Px)} ,以简化计算步骤
2.异常处理未详细写,根据需要自己补充
3.未做循环处理,只运行一次,可根据需要改为循环处理,但最好加一个退出控制字符,避免死循环
4.P值为小数输入,如30%,则输入0.3或.3,如认为输入效果不好,可自己更改
5.此为控制台程序,VB2005下测试通过,如果要写窗口界面程序,可仿照此原理修改,完整代码如下:
Sub Main()
Dim n, T, A, V As Integer, P As Double
Dim result As Double = 0, m As Integer = 1
Try
Console.WriteLine("请输入n的值:")
n = Int32.Parse(Console.ReadLine())
While n >= m
Console.WriteLine("请输入T{0}的值:", m)
T = Int32.Parse(Console.ReadLine())
Console.WriteLine("请输入P{0}的值:", m)
P = Double.Parse(Console.ReadLine())
result += T * (1 - P)
m = m + 1
End While
Console.WriteLine("请输入A的值:")
A = Int32.Parse(Console.ReadLine())
Console.WriteLine("请输入V的值:")
V = Int32.Parse(Console.ReadLine())
Console.WriteLine(A * V * result)
Console.ReadKey()
Catch err As Exception
MsgBox(err.Message)
Exit Sub
End Try
End Sub
2.异常处理未详细写,根据需要自己补充
3.未做循环处理,只运行一次,可根据需要改为循环处理,但最好加一个退出控制字符,避免死循环
4.P值为小数输入,如30%,则输入0.3或.3,如认为输入效果不好,可自己更改
5.此为控制台程序,VB2005下测试通过,如果要写窗口界面程序,可仿照此原理修改,完整代码如下:
Sub Main()
Dim n, T, A, V As Integer, P As Double
Dim result As Double = 0, m As Integer = 1
Try
Console.WriteLine("请输入n的值:")
n = Int32.Parse(Console.ReadLine())
While n >= m
Console.WriteLine("请输入T{0}的值:", m)
T = Int32.Parse(Console.ReadLine())
Console.WriteLine("请输入P{0}的值:", m)
P = Double.Parse(Console.ReadLine())
result += T * (1 - P)
m = m + 1
End While
Console.WriteLine("请输入A的值:")
A = Int32.Parse(Console.ReadLine())
Console.WriteLine("请输入V的值:")
V = Int32.Parse(Console.ReadLine())
Console.WriteLine(A * V * result)
Console.ReadKey()
Catch err As Exception
MsgBox(err.Message)
Exit Sub
End Try
End Sub
展开全部
我先说我的理解,要理解不对,再说。理解对了,再做。省了白费劲。
公式中:
1、A是常数;
2、Tx、Px是相关的两系列数据,多少一样;
3、V是常数。
公式中:
1、A是常数;
2、Tx、Px是相关的两系列数据,多少一样;
3、V是常数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sub F()
Dim TT As String, n As Integer, T() As Integer, P() As Single, A As Integer, V As Integer, i As Integer, Rc As Single, S As Single
Prompt = "请输入n:"
Do
TT = InputBox(Prompt)
n = Int(Val(TT))
If n = 0 Then Prompt = "输入错误,请重新输入n:"
Loop Until n > 0
ReDim T(n)
ReDim P(n)
For i = 1 To n
Prompt = "请输入T" & i & "(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
T(i) = Int(Val(TT))
Prompt = "请输入P" & i & "(如果输入无效数字或取消则认为输入0,不用输入%):"
TT = InputBox(Prompt)
P(i) = Val(TT) / 100
Next
Prompt = "请输入A(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
A = Int(Val(TT))
Prompt = "请输入V(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
V = Int(Val(TT))
S = 0
For i = 1 To n
S = S + T(i) * (1 - P(i))
Next
Rc = A * S * V
MsgBox "Rc= A * ∑ {Tx*V*(1-Px)} =" & Rc
End Sub
Dim TT As String, n As Integer, T() As Integer, P() As Single, A As Integer, V As Integer, i As Integer, Rc As Single, S As Single
Prompt = "请输入n:"
Do
TT = InputBox(Prompt)
n = Int(Val(TT))
If n = 0 Then Prompt = "输入错误,请重新输入n:"
Loop Until n > 0
ReDim T(n)
ReDim P(n)
For i = 1 To n
Prompt = "请输入T" & i & "(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
T(i) = Int(Val(TT))
Prompt = "请输入P" & i & "(如果输入无效数字或取消则认为输入0,不用输入%):"
TT = InputBox(Prompt)
P(i) = Val(TT) / 100
Next
Prompt = "请输入A(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
A = Int(Val(TT))
Prompt = "请输入V(如果输入无效数字或取消则认为输入0):"
TT = InputBox(Prompt)
V = Int(Val(TT))
S = 0
For i = 1 To n
S = S + T(i) * (1 - P(i))
Next
Rc = A * S * V
MsgBox "Rc= A * ∑ {Tx*V*(1-Px)} =" & Rc
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看不懂。。。N在公式里起什么作用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询