程序界面如图所示,在文本框Text_1中输入原始字符串,在文本框Text_2中输入需要删除的字符,单击“删除此字符”按钮(Command1)后,在文本框Text_3中输出处理后的结果。
解决此问题的算法流程图如图所示,相应的Visual Basic程序如下:
Dim p As String,k As String
Private Sub Command1_Click()
Dim s As Integer,result As String,flag As Boolean
result=“”
p=Text_1.Text
k=Text_2.Text
For s=1 To Len(p)
flag=f(s)
If Not flag Then
result=result+①
End If
Next s
②
End Sub
Function f(s As Integer)As Boolean
If Mid(p,s,1)=k Then f=True
End Function
程序中①划线处应填入。
程序中②划线处应填入。
Randomize
For i=1 To 6
a(i)= lnt(Rnd * 20)+1
If a(i)Mod 2=i Mod 2 Then
a(i)= a(i)-1
Else
a(i)= a(i)+2
End If
Next i
执行该程序段后,a(1)~a(6)各元素可能的是( )

Dim a(1 To 9) As Integer
Private Sub Command1_Click()
Dim column As Integer, row As Integer, t As Integer, tmp As Integer
Dim s As String, ch As String, result As String
s = Text1.Text: result = ""
For i = 1 To Len(s)
ch = Mid(s, i, 1): t =.
column = (t - 1) Mod 3 + 1
Do While t >= 3
t = t \ 3
Loop
row = ![]()
tmp = (Asc(ch) + - 65) Mod 26 + 65
result = result + Chr(tmp)
Next i
Text2.Text = result
End Sub
Private Sub Form_Load() '用来生成3*3矩阵
For i = 1 To 9
a(i) = Int(Rnd * 9) + 1
s = s + Str(a(i))
If i Mod 3 = 0 Then
List1.AddItem s
s = ""
End If
Next i
End Sub
|
编码中位 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
对位信息 |
p1 |
p2 |
b1 |
p3 |
b2 |
b3 |
b4 |
校验的方式如下,求校验值g1、g2、g3:
g1 = p1 Xor b1 Xor b2 Xor b4
g2 = p2 Xor b1 Xor b3 Xor b4
g3 = p3 Xor b2 Xor b3 Xor b4
其中Xor 为异或运算,规则是:0 Xor 0 =0,0 Xor 1 =1,1 Xor 0 =1,1 Xor 1 =0,p1 Xor b1 是将p1、b1 转换为二进制后按位进行异或运算,如7 Xor 12 的结果为11。
a.若计算得到的校验值g1、g2、g3 均为0,说明校验正确,数据无错误。例如:若7 位编码为1101001,计算校验值g1、g2、g3 值均为0,验证正确。
b.若校验值g1、g2、g3 不全为0,说明数据有错,出错位置为g3g2g1(二进制数表示),纠错的方法是对错误的位进行取反,即“0”变“1”,“1”变“0”。例如:若7 位编码为1111001,计算校验值g1=1、g2=1、g3=0,不全为0,说明数据有错,错误位置在011(二进制数)位,即第3位,原位置上“1”应为“0”,正确编码为1101001。
小明为此编写了VB 程序,程序运行时,在文本框Text1 中输入编码值,单击“校验”按钮Command1 后,在文本框Text2 中输出运行结果,如图所示。
实现上述功能的 VB 程序如下,请回答下列问题:
Function check(s As String) As Integer
Dim i As Integer, g1 As Integer, g2 As Integer, g3 As Integer
Dim c(1 To 7) As Integer
For i = 1 To 7
c(i) = Val(Mid(s, i, 1))
Next i
g1 = c(1) Xor c(3) Xor c(5) Xor c(7)
g2 = c(2) Xor c(3) Xor c(6) Xor c(7)
g3 = c(4) Xor c(5) Xor c(6) Xor c(7)
If g1 + g2 + g3 = 0 Then check=0 Else check= ①
End Function
Private Sub Command1_Click()
Dim i As Integer, m As Integer, Outs As String
m= ②
If m = 0 Then
Text2.Text = “验证正确,数据无错误”
Else
For i = 1 To 7
If i = m Then
Outs=Outs+
③
Else
Outs = Outs + Mid(Text1.Text, i, 1)
End If
Next i
Text2.Text = “第” + Str(m) + “位上数据有错误,正确编码应为:” + Outs
End If
End Sub
① ② ③
加框处改正:
x= "abcdcba": ans = 0
For i= 1 To Len(x) \2.
If Mid(x, i, 1) = Mid(x, Len(x)-i+ 1, 1) Then ans = ans+ 1
Next i
Text1.Text = Str(ans)
s = Text1.Text
If Mid(s, 1, 1) = "(" Then flag = True Else flag = False
cnt = 0: sum = 0
For i = 2 To Len(s)
c = Mid(s, i, 1)
If flag = True Then
If c >= "a" And c <= "z" Then
sum = sum + 1
Else
If sum <> 0 Then cnt = cnt + 1: sum = 0
End If
End If
If c = "(" Then flag = True
If c = ")" Then flag = False
Next i
文本框Text1的内容为一串只包含小写字母、左右括号和空格的字符串“(we can) do (better) we (should (be )better)”,执行程序段后,变量cnt的值为( )
For i=1 to 3
For j=1 to 5-i
If a(j)>a(j+1) Then
t=a(j) : a(j)=a(j+1) : a(j+1)=t
End If
Next j
Text1.Text = Str(a(i))+Text1.Text
Next i
数组元素a(1)到a(5)的值依次为“2,9,7,8,5”。若该程序段执行后,文本框Text1显示的内容是( )
Dim a(1 To 10)As Integer
Dim i As Integer, j As Integer
a(1)=1:a(2)=1
For i=3 To 5
a(i)=1
For j=i-1 To 2 Step-1
a(j)=a(j)+a(j-1)
Next j
Next i
Text1.Text=Str(a(3))
i=1
s=0
while i<7:
s=s+i
i=i+1
if i ==5:
break
print("s=",s)
程序运行后输出的结果为( )
pwd= {" Name" : "User", "Password" :"@YueKao108"}
pwd["Name* ]=" Administrator"
print(pwd["Name"][:4])
s1 = "567898765"
s2 = ""
n = Len(s1) \ 2
For i = 1 To n
If Mid(s1,i,1) < Mid(s1, n + 1, 1) Then
s2 = s2 + Mid(s1, i, 1)
Else
s2 = Mid(s1, n + i, 1) + s2
End If
Next i
Text1.Text = s2

编写一个VB程序实现如下功能:单击“开始循迹”按钮Command1,呈现10*10矩阵地图,并随机生成4个循迹点,分别用数字1表示,数字0表示非循迹点;计算4点中相距最远的两点的直线距离,显示在标签Label1中。程序运行界面如图b所示。

Const n = 10
Const m=4
Dim b(1 To 8) As Integer
Private Sub Command1_Click()
Dim f(1 To n* n) As Integer
Dim i As Integer, j As Integer
Dim w As Integer, k As Integer
Dim length As Single, maxlen As Single
Dim s As String
'生成矩阵地图和随机生成4个循迹点,0表示非循迹点,1表示循迹点,存于数组f中,代码略。
For i= 1 To n^2 '显示矩阵地图和4个循迹点
s = s+ Str(f(i))
If i Mod n=0 Then
List1. AddItem s
s=" "
End If
Next i
w=1
For i=1 To n
For j=1 To n
k = (n+1)* ((i-1) Mod 2)+(-1)-(i-1) * j
If Then '记录循迹点所在位置
b(2*w-1)=i
b(2*w)=k
w=w+1
End If
Next j
Next i
i=1
maxlen = 0
Do While i<=m-1
For j=i+1 To m
If length > maxlen Then maxlen = length
Next j
i= i+1
Loop
Label1. Caption = Str( maxlen)
End Sub
Function reck(x As Integer, y As Integer) As Single
Dim c As Integer, d As Integer
Dim h As Single
c=
d=Abs(b(2*x)-b(2*y))
h=Sqr(c^2+d^2)
reck = h
End Function
x=10
y=3
print(x%y)
a=1
b=2*a/4
a="one"
print(a, b)