学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
地球上任意位置可以用纬度、经度描述,纬度区间是[-90,90],经度区间是[-180,180]。如:浙江省绍兴市越城区鲁迅故里的纬度是29.9924099,经度为120.58552218。为表达位置间的邻近关系,引入了地理区域编码,某算法的核心思想如下:
•将地理上某点经纬度分别转换成二进制编码。例如,对于给定纬度lat(299924099),编码规则为:
•将区间[-90,90]二分为[-90,0),[0,90],称为左、右区间,1at属于右区间[0,90],标记为1;
•将区间[0,90]二分为[0,45),[45,90],lat属于左区间[0,45),标记为0;
•重复上述过程,不断划分区间,lat属于左区间则记录0,属于右区间则记录1。直到达到指定编码长度 length(一般为5的倍数)为止类似地,可对经度lng(120.58552218进行二进制编码。
·Base32编码合成为地理区域字符串。以编码长度 length=10为例,如前述计算得到,鲁迅故里的纬度编码为10101 01010,经度编码为11010 10110。地理区域字符串生成规则:
•生成新串:奇数位放经度,偶数位放纬度,将两串编码组合:110110 11001 10011 01100;
•分组转换:将11100 11001 10011 01100每5位一组转成1个十进制整数,分别对应为28,25,19,12;
•Base32编码:使用数字0~9、小写字母(去掉字母a,i,1,o)这32个字符进行Base32编码(见下表)。十进制整数28,25,19,12对应的编码组合就是“wtmd”,即为该位置的地理区域字符串。
  
(1)规定编码长度 length为5,经度lng为120.125 082 58,则经度lng的二进制编码为__________。
(2)小沈根据上述描述,设计了一个“利奇马”台风中心途经经纬度转换为地理区域字符串的算法。该算法VB程序实现如下,请在划线处填入合适的代码
Const m=48, length=20'纬度、经度二进制编码长度均为 length
Dim a(1 To 2.* m)As Double
Dim b(1 To m) As string
′读取m个时刻台风中心的经纬度数据并存入数组a,代码略'a(1),a(2)为台风在时刻1的纬度、经度,a(3),a(4)为台风在时刻2的纬度和经度,......
′b(1)保存台风在时刻1的地理区域字符串,b(2)保存台风在时刻2的地理区域字符串,......
Private Sub Command1 _ Click()

′1at为纬度、1ng为经度,code为地理区域编码

Dim lat As double, Ing As Double, code As String

Dim strLat As String, strLng As String, s As String

Dim i As integer, j As Integer, n As Integer

Const base32="0123456789bcdefghjkmnpqrstuvwxyz"

For i=1 To m

lat=a(2*i-1)
Ing=a(2*i)
S=""
strLat= DoubleToBits (lat,—90,90)             ′纬度转换为二进制
编码
strLng=DoubleToBits(lng,—180,180)            ′经度转换为二进制
编码
For j=1 To length
s=________                            ′将两串二进制编码
组合
Next j
n=0: code=""
For j=1 To Len(s)
___________
If j Mod 5=0 Then
code= code+Mid(base32,n+1,1)
n=0
End If
Next j
b(i)=code
Next i
′输出地理区域编码,代码略
End sub
′函数 Doubletobits根据指定的区间[ lower,upper],计算 value的二进制编码
Function Double ToBits( value As Double,lower As Double, upper As Double) As String

Dim ret As String, i As Integer, middle As Double

ret="":i=1: middle=0

Do While i<= length

middle=(upper+lower)/2

If_________Then

lower=middle
ret=ret十"1"

Else

upper=middle
ret t+"0
End If
i=i+1
Loop
DoubleToBits=ret
End function
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交