现需要对字符串中的字符进行重排顺序,具体方法如下:
原字符串8个字符为一段,分成若干段进行重排处理,尾段剩余字符(个数小于8)为独立段不做处理。
重排规则:从起始段第1个字符开始,从1开始数数,数到m时取出该位置上的字符,拼接到新字符串。然后,从下一个位置继续从1开始数数,数到m时再次取出相应位置上的字符,拼接到新字符串。当数到每段的最后-一个字符时,重新从该段首第一个没有取掉的字符继续数数。重复上述操作,直至段内8个字符被取完。注:当某段中的7个字符被取出后,该段最后一个字符不需要数数,直接取出拼接到新字符串即可。
用以上方法逐段取字符,直至除独立段之外的其他字符取完。
独立段字符个数小于8,不需要重排,直接拼接到新字符串的尾部即可。
实现该功能的VB程序功能如下:程序运行时从文本框Text1中输入一段字符串,在文本框Text2输入正整数m,单击“确定”按钮Command1,对字符串按上述方法重排后在文本框Text3中显示(每段以逗号分隔)。程序运行界面如下:(1)运行上述程序,若在文本框中输入“1010110010”,在Text2中输入5,单击“确定”按钮,则文本框Text3中显示的内容是_______________ 。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_lick()
Dim s1 As String,s2 As String
Dim i As Integer,sum As Integer,ed As Integer,n As Integer
Dim m As Integer
①__________
s1 = Mid(Text1.Text,1,Len(Text1.Text)- n)
m = Val(Text2.Text)
s2 = " "
' 字符重排顺序
sum = 0 : i = 1 : ed = 8
Do While Len(s1)< > 0
sum = sum + 1
If sum = m Then
s2 = s2 + Mid(s1,i,1)
s1 = Mid(s1,1,i-1)+ Mid(s1,i+1,Len(s1)-i)
ed = ed – 1
sum = 0
Else
i = i + 1
End If
If ed = 1 Then
s2 = s2 + Mid(s1,1,1)+ ","
②___________
ed = 8
i = 1
ElseIf ③________ Then
i = 1
End If
Loop
' 处理独立段
If n < > 0 Then s2 = s2 + Mid(Text1.Text,Len(Text1.Text)- n + 1,n)+ ","
Text3.Text = s2
End Sub
原字符串8个字符为一段,分成若干段进行重排处理,尾段剩余字符(个数小于8)为独立段不做处理。
重排规则:从起始段第1个字符开始,从1开始数数,数到m时取出该位置上的字符,拼接到新字符串。然后,从下一个位置继续从1开始数数,数到m时再次取出相应位置上的字符,拼接到新字符串。当数到每段的最后-一个字符时,重新从该段首第一个没有取掉的字符继续数数。重复上述操作,直至段内8个字符被取完。注:当某段中的7个字符被取出后,该段最后一个字符不需要数数,直接取出拼接到新字符串即可。
用以上方法逐段取字符,直至除独立段之外的其他字符取完。
独立段字符个数小于8,不需要重排,直接拼接到新字符串的尾部即可。
实现该功能的VB程序功能如下:程序运行时从文本框Text1中输入一段字符串,在文本框Text2输入正整数m,单击“确定”按钮Command1,对字符串按上述方法重排后在文本框Text3中显示(每段以逗号分隔)。程序运行界面如下:(1)运行上述程序,若在文本框中输入“1010110010”,在Text2中输入5,单击“确定”按钮,则文本框Text3中显示的内容是
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_lick()
Dim s1 As String,s2 As String
Dim i As Integer,sum As Integer,ed As Integer,n As Integer
Dim m As Integer
①
s1 = Mid(Text1.Text,1,Len(Text1.Text)- n)
m = Val(Text2.Text)
s2 = " "
' 字符重排顺序
sum = 0 : i = 1 : ed = 8
Do While Len(s1)< > 0
sum = sum + 1
If sum = m Then
s2 = s2 + Mid(s1,i,1)
s1 = Mid(s1,1,i-1)+ Mid(s1,i+1,Len(s1)-i)
ed = ed – 1
sum = 0
Else
i = i + 1
End If
If ed = 1 Then
s2 = s2 + Mid(s1,1,1)+ ","
②
ed = 8
i = 1
ElseIf ③
i = 1
End If
Loop
' 处理独立段
If n < > 0 Then s2 = s2 + Mid(Text1.Text,Len(Text1.Text)- n + 1,n)+ ","
Text3.Text = s2
End Sub
更新时间:2021-02-07 14:22:11
|
【知识点】 VB程序的调试
相似题推荐
操作题
|
适中
(0.65)
【推荐1】小张同学已经学会了整数十进制转换为二进制的方法:“除2取余,逆序排列”法。通过查找资料得知,十进制小数转换成二进制小数采用“乘2取整,顺序排列”法。具体做法是:用2乘十进制小数部分,得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止,即“乘2取整,顺序排列”法。小张同学编写了VB程序,程序运行界面如图所示,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“进制转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到4位小数。实现上述功能的VB程序如图,请回答下列问题:⑴按照本程序的功能,在Text1中输入数据4.125,点击“进制转换”按钮Command1,在Text2中显示的内容是_________ 。
⑵请在画线处填入合适的代码:
Private Sub Command1_Click()
Dim s As String, s1 As Integer, s2 As
Single
Dim result As String
Dim temp As Integer, i As Integer, k As
Integer
s = Text1.Text
'输入数据是否符合要求,不符合重新输入,代码略
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "." Then
s1 = Val(Mid(s, 1, i - 1)) 's1表示整数部分
s2 =_____________ 's2表示小数部分
Exit For '退出循环
End If
Next i
'整数部分s1转化为二进制
result = ""
Do While s1 <> 0
temp = s1 Mod 2
s1 = s1 \ 2
result = temp & result
Loop
result = result & "."
'小数部分s2转化为二进制,最多保留4位小数
k = 1
Do While s2 <> 0 And k<=4
temp = Int(s2 * 2)
s2 =_______________
result = result & temp
k = k + 1
Loop
Text2.Text = result
End Sub
⑵请在画线处填入合适的代码:
Private Sub Command1_Click()
Dim s As String, s1 As Integer, s2 As
Single
Dim result As String
Dim temp As Integer, i As Integer, k As
Integer
s = Text1.Text
'输入数据是否符合要求,不符合重新输入,代码略
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "." Then
s1 = Val(Mid(s, 1, i - 1)) 's1表示整数部分
s2 =
Exit For '退出循环
End If
Next i
'整数部分s1转化为二进制
result = ""
Do While s1 <> 0
temp = s1 Mod 2
s1 = s1 \ 2
result = temp & result
Loop
result = result & "."
'小数部分s2转化为二进制,最多保留4位小数
k = 1
Do While s2 <> 0 And k<=4
temp = Int(s2 * 2)
s2 =
result = result & temp
k = k + 1
Loop
Text2.Text = result
End Sub
您最近一年使用:0次
操作题
|
适中
(0.65)
【推荐3】学校组织运动会,开幕式的时候要求每个班排成一个方阵,为了能快速地排成方阵, 小张编写了一个 VB 程序,程序功能:在文本框 Text1 中输入每一行的人数,在文本框 Text2 中输入班级人数(输入人数<=60),单击“排队”按钮 Cmd1 后,在列表框 List1 中按学号 显示队形。程序运行界面如下图所示,程序代码如下,请回答下列问题:
(1)以上代码的事件处理过程名是
(2)程序代码中加框处有两处错误,请改正:①
(3)程序代码中,请将③处的代码补充完整
您最近一年使用:0次