1)用一个一维数组来模拟,编号1~N保存在数据a(1)~a(n)中,来代表N个小朋友。
2)K代表报数的起始位置,从数组的a(k)开始遍列,报到m出圈,将当前位置的元素删除,后面的元素依次往前移位。总数减1。
3)当报数报到数组元素的最后一个时,返回数组开头接着报数。
4)当总数只剩下一个数时,直接输出。
界面如下:
Private Sub Command1_Click( )
Dim i As Integer
Dim n As Integer
Dim m As Integer, k As Integer
Dim A(1 To 50) As Integer '存放编号的数组
n = Val(Text1.Text) '编号个数
k = Val(Text2.Text) '报数起始位
m = Val(Text3.Text) '报到出圈数
If n > 0 And k > 0 And m > 0 ① n <= 50 Then
For i = 1 To n '初始化编号a(1)=1,a(2)=2,……
A(i) = i
Next i
Label1.Caption = ② '调用出圈函数,得到返回的出圈顺序
Else
MsgBox "编号、起始位、报到出圈数都必须大于0!编号不能超过50!"
End If
End Sub
Private Function chuquan(b() As Integer, n As Integer, m As Integer, k As Integer) As String
Dim i As Integer, j As Integer
Dim s As String '出圈顺序存放
i = k - 1
s = "出圈顺序为:"
Do While n > 1
i = i + 1
m = m - 1
If ③ Then
s = s + Str(b(i)) + ","
For j = i To n - 1
b(j) = b(j + 1)
Next j
b(j) = 0
n = n - 1
i = i - 1
m = 4
End If
If i = n Then i = 0
Loop
chuquan = ④
End Function
①
②
③
④
①将该字符的ASCII码值转化为8位二进制数;
②将后4位二进制数进行按位取反(1变0,0变1);
③将操作②生成的4位二进制数均左移1位(原第1位变为新的第4位);
④原高4位二进制数连接到新的后4位二进制数成为最终加密后字符的内码。
例如:字符“a”经过上述加密运算,可得到字符“m”。
ASCII码值 |
转二进制 |
后四位取反 |
后四位左移 |
拼合 |
转十进制 |
转字符 |
97D |
01100001B |
1110 |
1101 |
01101101B |
109D |
“m” |
程序运行界面如图所示,请改正加框处有误的代码:
Private Sub Command1_Click()
Dim s As String:Dim sl As String:Dim jg As String
Dim n As Integer:Dim x As Integer:Dim i As Integer:Dim j As Integer
Dim a(15)As String
a(0)=“0000”:a(1)=“0001”:a(2)=“0010”:a(3)=“0011”
a(4)=“0100”:a(5)=“0101”:a(6)=“0110”:a(7)=“0111¨
a(8)=“1000”:a(9)=“1001”:a(10)=“1010”:a(11)=“1011¨
a(12)=“1100”:a(13)=“1101”:a(14)“1110”:a(15)=“1111”
jg=“ ”
s=Text1.Text
For i=1 To Len(s)
n=Asc(Mid(s,i,1))
low=n Mod 16
low=15-low ‘执行步骤②
s1=Mid(a(low),2,3)&Mid(a(low),1,1) ‘执行步骤③
For i=l To 4
x=x+Val(Mid(s1,j,1))* ‘⑴
Next j
x= *16+x ‘⑵
jg=jg&Chr(x)
Next i
Text2.Text=jg
End Sub
Private Sub Command1_Click()
Dim a As String, b As String, c As String
a = "印象西湖"
b = "中国"
c = b + Mid(a, 1, 2)
Lab.Caption = c
End Sub
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single, w As Single
w = 6: a = 60: b = 50: c = 30
If w <= 10 And a + b + c <= 115 Then
Label1.Caption = "携带"
Else
Label1.Caption = "托运"
End If
End Sub
Private Sub Command1_Click()
Dim d(1 To 8) As Integer
Dim i As Integer
For i = 1 To 8
d(i) = 2 * i
List1.AddItem Str(d(i))
Next i
End Sub
30分钟以内不收费,1小时及以内收费5元,超过一小时后超过部分2元\小时收费(不足1小时的按1小时计算)。小明据此设计了以下VB程序,程序运行界面如图。
Private Sub Command1_Click()
Dim t As Integer , cost As Integer , h As Integer ‘h是小时时长
t=Val(Text1.Text)
If t <= 30 Then
cost=0
Else
h=(t-1)\60+1
If Then
cost=5
Else
cost=
EndIf
EndIf
Text2.Text=
EndSub
Private Sub Command1_Click()
Dim i As Integer
Dim a(10)As Integer ‘①
For i=1 To 10 ‘②
a(i)=Rnd* 100 ‘③
Next i
Label1.Caption=Str(a(i)) ‘④
End Sub
Dim s As Single
s = 32
For i = 1 To 10 Step ________
s = 8/2
Next i
该程序执行后,s的值为1,则循环语句的步长应为( )
For i = 1 To Val (Text1. Text)
j=1
a(j) = a(j) + 1
Do While a(j) =2
a(j)= 0
j=j+1
a(j)=a(j)+1
Loop
Next i
数组a中各元素初值均为0,该程序段运行时,在文本框Text1中输入10,则程序运行结束后a(4),a(3),a(2),a(1)的值依次为( )
1)将该字符ASCI码转换成对应8位二进制;
2)将对应8位二进制数进行按位取反(1变0;0变1);
3)将产生的8位二进制数循环左移3次;
4)最后产生的8位二进制数转换成对应的十六进制数。
例如:明文大写字母“A”通过上述算法加密算法加密后生成的密文是“F5”,在文本框Text1中输入明文,单击“生成密文”按钮Command1,加密后生成的密文显示在文本框Text2中。
Function btoh(m As String)As String ‘将4位二进制数转换成对应的十六进制数
Dim s As Integer, i As Integer, str As String
str ="0123456789ABCDEF": s=0
For i=1 To 4
s=s*2+ Val(Mid(m, i, 1))
Next i
①
End Function
Private Sub Command1_Click()
Dim ans As String, s As String, ch As String, ret As String
Dim i As Integer, asc1 As Integer, n As Integer
②
ans=" "
For i = 1 To Len(s)
ch =Mid(s, i, 1) ‘取出第i个字符存入变量ch
asc1=Asc(ch)
ret" "
For m =1 To 8 ‘完成加密步骤1)和步骤2)
n=(asc1+1)mod 2
ret =n & ret
③
Next m
ret = Mid(ret, 4, 5)+ Mid(ret, 1, 3) ‘完成加密步骤3)和步骤4)
s1=btoh(Mid(ret, 1, 4))
s2 =btoh(Mid(ret, 5, 4))
ans =ans & s1 & s2 ‘将第i个加密后的字符添加到变量ans的末尾
Next i
Text2.Text = ans
End Sub
① ② ③
软件部分的图像预处理往往是对采集到的车牌图像,在经过倾斜校正之后进行二值化处理,这样能够凸显出车牌的轮廓,使图像变得简单,减少数据量。如:
对应数学模型的表述公式应为。
①给定图像的灰度值:输入每个像素的灰度值p(x,y);
②列举图像中的每个像素点:横坐标x列举的范围为1到图像的宽度,纵坐标y列举的范围为1到图像的高度;
③判定:若在x,y位置上的像素的灰度值小于阈值136,则判定为0;否则判定为1。
该判定的过程属于算法控制结构中的结构。
自然语言 |
流程图 |
第一步:变量s的初值是0,t的初值是1; 第二步:将1赋值给变量i; 第三步: t←t×i,然后s←s+t; 第四步:将变量i的值加1,若i小于或等于10,转到第三步,否则转到第五步; 第五步:输出变量s的值; 第六步:结束。 |
|