早教吧 育儿知识 作业答案 考试题库 百科 知识分享

英语翻译'计算两经纬度之间距离=callonglat(经度1,纬度1,经度2,纬度2)PublicFunctionCalLongLat(ByVallong1AsDouble,ByVallat1AsDouble,ByVallong2AsDouble,ByVallat2AsDouble)AsDoubleConstPIAsDouble=3.1415926535Dim

题目详情
英语翻译
'计算两经纬度之间距离=cal_long_lat(经度1,纬度1,经度2,纬度2)
Public Function Cal_Long_Lat(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
Dim sinX,cosX As Double
sinX = Sin(AngleLat1) * Sin(AngleLat2)
cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1)
x = sinX + cosX
On Error Resume Next
ax = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)
Cal_Long_Lat = 6368.16 * ax
End Function
'计算两经纬度之间角度=cal_bearing(经度1,纬度1,经度2,纬度2)
Public Function Cal_bearing(ByVal long1 As Double,ByVal lat1 As Double,ByVal long2 As Double,ByVal lat2 As Double) As Double
Const PI As Double = 3.1415926535
Dim AngleLong1,AngleLat1,AngleLong2,AngleLat2 As Double
AngleLong1 = long1 * PI / 180
AngleLat1 = lat1 * PI / 180
AngleLong2 = long2 * PI / 180
AngleLat2 = lat2 * PI / 180
y = Sin(AngleLong1 - AngleLong2) * Cos(AngleLat2)
x = Cos(AngleLat1) * Sin(AngleLat2) - Sin(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong1 - AngleLong2)
Cal_bearing = 360 - (Atan2(y,x) * 180 / PI + 360) Mod 360
End Function
Public Function Atan2(ByVal y As Double,ByVal x As Double) As Double
Const PI As Double = 3.1415926535
If y > 0 Then
If x >= y Then
Atan2 = Atn(y / x)
ElseIf x = -y Then
Atan2 = Atn(y / x)
ElseIf x
▼优质解答
答案和解析
Private Sub Form_Click() '单击窗体上任意地方
Dim a(1 To 10) As Integer,i%,maxa%,mina%,avera!'声明各种变量
For i = 1 To 10 '开始一个循环(循环10次)
a(i) = Int(Rnd * 100) '给数组a赋初始值(10个整数均为随机产生的)
Next i '循环截止符
mina = a(1) '将数组中排在第一位的a(1)中的数值存入“最小数变量mina”中,暂定是最小数
maxa = a(1) '将数组中排在第一位的a(1)中的数值存入“最大数变量maxa”中,暂定是最大数
avera = a(1) '将数组中排在第一位的a(1)中的数值存入“平均值变量avera”中,暂定是平均值
For i = 2 To 10 '循环从排位第2的位置开始到最后(10)
If a(i) > maxa Then maxa = a(i) '找出最大数(拿第一个数maxa分别和后面的9个数比较,大的存入maxa中)
If a(i) < mina Then mina = a(i) '找出最小数(拿第一个数mina分别和后面的9个数比较,小的存入mina中)
avera = avera + a(i) '算出10个数的总和(第一个avera分别加上后面的9个并存入avera中)
Next i
For i = 1 To 10
Print a(i) '此循环的目的是在窗体上打印出上面随机生成的10个数
Next i
Print '换一行
Print "max="; maxa,"min="; mina,"aver="; avera / 10 '在窗体的第二行输出:最大数、最小数、平均值
End Sub 结束