vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,由于13大于10小于15,所以b=10*15.当a=21时,由于
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 07:29:50
![vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,由于13大于10小于15,所以b=10*15.当a=21时,由于](/uploads/image/z/3790594-10-4.jpg?t=vb%E4%B8%AD%E5%A6%82%E6%9E%9C%E7%BB%99%E4%B8%80%E4%B8%AA%E6%95%B0%E5%80%BC%E6%80%8E%E4%B9%88%E6%A0%B7%E8%AE%A9%E5%AE%83%E5%9C%A8%E4%B8%80%E7%BB%84%E6%95%B0%E6%8D%AE%E4%B8%AD%E6%89%BE%E5%88%B0%E4%B8%80%E4%B8%AA%E6%9C%80%E6%8E%A5%E8%BF%91%E5%A4%A7%E4%BA%8E%E5%AE%83%E7%9A%84%E6%95%B0%E5%92%8C%E4%B8%80%E4%B8%AA%E6%9C%80%E6%8E%A5%E8%BF%91%E5%B0%8F%E4%BA%8E%E5%AE%83%E7%9A%84%E6%95%B0%E5%80%BC%E7%8E%B0%E5%9C%A8%E6%9C%89%E4%B8%80%E7%BB%84%E6%95%B05.10.15.20.25.%E5%A6%82%E6%9E%9C%E6%9C%89%E4%B8%80%E4%B8%AA%E6%95%B0a%2C%E5%BD%93a%3D13%E6%97%B6%2C%E7%94%B1%E4%BA%8E13%E5%A4%A7%E4%BA%8E10%E5%B0%8F%E4%BA%8E15%2C%E6%89%80%E4%BB%A5b%3D10%2A15.%E5%BD%93a%3D21%E6%97%B6%2C%E7%94%B1%E4%BA%8E)
vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,由于13大于10小于15,所以b=10*15.当a=21时,由于
vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值
现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,由于13大于10小于15,所以b=10*15.当a=21时,由于21大于20小于25,所以b=20*25,又假如a等于数组中的某个数值,那它就等于它本身.这个过程如何用vb表示,希望哪位大侠可以帮个忙谢谢!
vb中如果给一个数值怎么样让它在一组数据中找到一个最接近大于它的数和一个最接近小于它的数值现在有一组数5.10.15.20.25.如果有一个数a,当a=13时,由于13大于10小于15,所以b=10*15.当a=21时,由于
'在窗体上画一个名称为Command1的按钮就可以运行了
Private Sub Command1_Click()
Dim i As Integer, myNumber As Integer, myResult As Long
Dim intMyArray(0 To 4) As Integer
'-----------------------------
'这部分是测试数据,根据需要自己设置
intMyArray(0) = 20
intMyArray(1) = 25
intMyArray(2) = 10
intMyArray(3) = 15
intMyArray(4) = 5
myNumber = 5
'-----------------------------
'首先对数组数据进行排序,防止用来判断的数组不标准产生误差
If MySort(intMyArray()) Then
'对要进行处理的数值进行校验,排除非法数据
If myNumber > intMyArray(UBound(intMyArray)) Or myNumber < intMyArray(0) Then
MsgBox "输入值超出可处理范围,请检查", vbExclamation, "提示"
Exit Sub
End If
If JudgeNumber(intMyArray, myNumber, myResult) Then
Print myNumber & "的处理结果为:" & myResult
Else
MsgBox "处理失败失败", vbExclamation, "提示"
End If
Else
MsgBox "排序失败", vbExclamation, "提示"
End If
End Sub
Private Function MySort(intArray() As Integer) As Boolean
Dim i As Integer, j As Integer
Dim intTmp As Integer
On Error GoTo ErrLab
For i = 0 To UBound(intArray) - 1
For j = 0 To UBound(intArray) - i - 1
If intArray(j) > intArray(j + 1) Then
intTmp = intArray(j)
intArray(j) = intArray(j + 1)
intArray(j + 1) = intTmp
End If
Next
Next
MySort = True
ErrLab:
If Err.Number <> 0 Then
MySort = False
End If
End Function
'lngResult为计算结果
Private Function JudgeNumber(intArray() As Integer, ByVal intInput As Integer, ByRef lngResult As Long) As Boolean
Dim i As Integer
On Error GoTo ErrLab
For i = 0 To UBound(intArray)
If intInput <= intArray(i) Then
If intInput = intArray(i) Then
lngResult = intInput
Else
lngResult = intArray(i - 1) * intArray(i)
End If
Exit For
End If
Next
JudgeNumber = True
Exit Function
ErrLab:
JudgeNumber = False
End Function