从被加密字符串中获取单个字符,然后得到其ascii码的8位二进制编码。
将字符的二进制编码反向,得到其逆序二进制码。
将逆序二进制码的每4位转换为相应的十六进制编码,即得到单个字符加密后的字符串。
以此类推,直到所有字符加密完成,得到加密字符串。
具体程序界面如下图,在text1中输入字符串,点击“加密”按钮command1后,在text2中显示加密后的字符串。
程序中②画线处应填入。
Private Sub Command1_Click()
Dim s As String, ch As String
Dim result As String, chA As String, chB As String
Dim i As Integer, j As Integer
Dim n As Integer, m As Integer
s = Text1.Text
n = Len(s)
result = "": c = "0123456789ABCDEF"
For i = 1 To n
ch = ①
ch = niXu(ch)
m = 0
For j = 1 To 4 ' 获取二进制码前4位的值
②
Next
chA = Mid(c, m + 1, 1)
m = 0
For j = 5 To Len(ch)
m = m * 2 + Val(Mid(ch, j, 1))
Next
chB = Mid(c, m + 1, 1)
result = result + chA + chB
Next
Text2.Text = result
End Sub
' 得到单个字符ch的8位二进制编码
Function D2B(ByVal ch As String) As String
Dim s As String
Dim data As Integer, i As Integer
data = Asc(ch):s = ""
Do While data > 0
s =Str(data Mod 2) + s
data = data \ 2
Loop
If Len(s) < 8 Then
For i = 1 To 8 - Len(s)
s = "0" + s
Next
D2B = s
Else
D2B = s
End If
End Function
' 返回字符串s的逆序
Function niXu(ByVal s As String) As String
Dim i As Integer:Dim r As String
r = ""
For i = Len(s) To 1 Step -1
r = r + Mid(s, i, 1)
Next
niXu = r
End Function
⑴使用循环列出1到99999中的每一个数zmsknz
⑵通过自定义函数ddknzms拆解得到每个数中的每位数上的数码及它们对应的n次幂之和
⑶将zmsknz与ddknzms进行比较,若相等则说明是自幂数,可将其加入列表。
编写VB程序,使用枚举法得到5位数以内的自幂数,程序设计界面如图所示:
请根据算法及相应注释将下面的程序补充完整:
Function ddknzms(zmsknz As Long) As Long '得到可能的自幂数
Dim zmsknz_str As String '字符串类型自幂数可能值
Dim zmsknz_length As Integer, zmswsxh As Integer '字符串类型自幂数可能值字符个数
zmsknz_str = Trim(Str(zmsknz))
zmsknz_length = Len(zmsknz_str)
For zmswsxh = 1 To zmsknz_length
ddknzms = ddknzms + Val(Mid(zmsknz_str, zmswsxh, 1))^
Next zmswsxh
End Function
Private Sub Command1_Click()
Const ZMSWS = 5
Dim zmsknz As Long, zmsknz_zz As Long
zmsknz_zz = 10 ZMSWS - 1
For zmsknz = 1 To zmsknz_zz
If Then List1.AddItem (Str(zmsknz)
Next zmsknz
End Sub
Private Sub Command1_Click()
Dim x As Integer,y As Integer,z As Integer
x=Val(Text1.Text) ‘第1个正整数
y=Val(Text2.Text) ‘第2个正整数
‘调用函数gcd
Text3.Text=Str(z)
End Sub
Function gcd(a As Integer, b As Integer) As Integer
Do While a <> b
If a>b Then a=a-b Else b=b-a
Loop
gcd=b
End Function
方框中的正确语句是( )
编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于或等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行效果如图所示。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
Function judge(x As Integer)As Boolean
‘函数judge的功能是判断整数x是不是素数,若是素数则返回True,否则返回False
Dim j As Integer
judge=True
j=2
Do While j<=x-1 And judge=True
If x Mod j=0 Then
judge=False
Else
j=j+1
End If
Loop
End Function
Private Sub Command1_Click()
Dim n As Integer, p As Integer, q As Integer, flag As Boolean
n=Val(Text1.Text)
p=1
flag=False
Do While And p<n ‘
p=p+1
‘
If judge(p)And judge(q)Then
Text2.Text=“Yes”
flag=True
List1.AddItem Str(n)+“=”+Str(p)+“+”+Str(q)
End If
Loop
If flag=False Then
Text2.Text=“No”
End Sub
例如:如图所示,有4个队8位队员,地上一排格子的数字依次为2、1、1、7、9、2、5、6。若某队甲队员站在第4个格子,则其分数为2+1+1+7=11;乙队员站在第7个格子,则其分数为5+6=11。两者相等,则该队获胜。
gz(1) |
gz(2) |
gz(3) |
gz(4) |
gz(5) |
gz(6) |
gz(7) |
gz(8) |
←→ |
|||||||
2 |
1 |
1 |
7 |
9 |
2 |
5 |
6 |
甲 乙 |
Dim n As Integer
Dim gz(1 To 20) As Integer
Private Sub Command1_Click()
Dim dfa As Integer, dfb As Integer
Dim ta As Integer, tb As Integer
Randomize
For i = 1 To 2 * n
gz(i) = Int(Rnd* 9 + 1)
List1.AddItem “gz(“ & i & ”)” & gz(i)
Next i
num = 1
For j = 1 To 2 * n
ta = j
dfa = zwdf(ta, True)
For k = 1 To 2 * n
tb = k
If dfa = dfb Then
List2.AddItem num & “甲队员(“ & j &”)得分=” & dfa & “乙队员(“ & k & ”)得分=” & dfb
num = num + 1
End If
Next k
Next j
List2.AddItem “获胜的站法共有:”++ “种”
End Sub
Function zwdf(p As Integer, r As Boolean) As Integer
Dim fs As Integer
If r = True Then
fs = fs + gz(i)
Next i
Else
For i = p To 2 * n
fs = fs + gz (i)
Next i
End If
zwdf = fs
End Function
Private Sub Command1_Click()
Dim y As Long
Text1.Text = ""
y = f(3)
Label1.Caption = Str(y)
End Sub
Function f(n As Integer) As Long
Text1.Text = Text1.Text + Str(n)
If n <= 1 Then
f = 1
Else
f = f(n - 1) + 2
End If
End Function
●第1段是从数组首个元素开始,元素值都属于第1区间的最长连续元素段,如果首个元素不属于第1区间,则第1段元素个数为0;
●第1段分割后的剩余元素,用同样的方法来依次分割第2段、第3段、…、第m段;
●第m段分割后的剩余元素分割到第m+1段(剩余段)。若第p(1≤p≤m-1)段末尾连续元素的值也同时属于第p+1区间,则这块连续元素称为第p段“重叠块”,该段其余部分称为第p段“非重叠块”。由于不存在第m+1区间,这里特别规定:第m段的全部元素都分割到m段“非重叠块”,第m段“重叠块”的元素个数为0。一个数组分段示例如图。图中数组第1个元素10不属于第1区间[0,5],因此第1段的元素个数为0。10和20属于第2区间,而33不属于第2区间,因此第2段只包含10和20两个元素。第3段末尾连续3个元素的值也同时属于第4区间,因此,第3段“非重叠块”包含33,58,46,第3段“重叠块”包含55,62,69。
Const n=18:m=6
Dim a(1To n)As Integer
Dim b(1To2*m)As Integer
'b(1),b(2)为第1区间的下限和上限,b(3)、b(4)为第2区间的下限和上限,…
Dim c(1 To 2 * m+1)As Integer
'数组c用于保存统计结果:
'c(1)、c(2)分别存储第1段“非重叠块”和“重叠块”的元素个数,
'c(3)、c(4)分别存储第2段“非重叠块”和“重叠块”的元素个数,…
'c(2*m-1)存储第m段“非重叠块”元素个数,c(2m)存储第m段“重叠块”的元素个数(值为0)
'c(2*m+1)存储剩余段元素个数
Private Sub Command 1_Click()
Dim i As Integer, p As Integer, L As Integer, LL As Integer
'读取n个数据并保存在数组a中,代码略
'读取m个区间的下限和上限并保存在数组b中,代码略
For i = 1 To 2 * m + 1
c(i)= 0
Next i
i= 1:p = 1
L= 0:LL = 0
Do While ①
If IsIn(i, p)Then
If IsIn(i,p+1)Then
LL = LL+1
Else
②
LL = 0
End If
i= i+1
Else
c(2 * p - 1)= L
c(2 * p)= LL
L = 0
LL=0
p = p + 1
End If
Loop
If i <= n Then
c(2 * p-1)= n-i+1
Else
c(2* p - 1)= L
c(2* p)=LL
End If
'输出统计结果,代码略
End Sub
'函数IsIn用来判断a(i)值是否属于第p区间
Function IsIn(i As Integer,p As Integer)As Boolean
If p>m Then
IsIn=False
Else
If__③__Then IsIn=True Else IsIn=False
End If
End Function
①②③
按上述要求,编写一个VB程序,功能如下:在列表框List1中显示整理前的所有物资相关数据,单击“库存合并统计”按钮Command1,在列表框List2中显示整理结果,程序运行界面如图所示。
Const n= 2000 ‘物资总项数
Const nc = 26 ‘物资种别数,最多不会超过26
Dim items(1 To n) As String, supplies(1 To n) As String, totals(1 To n) As Long
Dim g(1 To2 * nc) As Long ‘存储各种物资3天、7天的需求数量
Dim b(1 To nc) As Long ‘存储各种物资的库存量
Dim c(1 To nc) As Long
Dim q(1 To nc) As Integer
Private Sub Form_Load()
‘本过程读取编号、品名、收支、需求的数据分别存储在数组items、supplies、totals、g数组中,并在List1中显示有关数据:g数组中g(1)、g(2)存储物资A的3天、7天的需求数量;g(3)、g(4)存储物资B的3天、7天的需求数……代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, top As Integer, bottom As Integer
Dim r As Long, s As String, t As Integer, m As Integer
For i=1 To nc.
b(i)=0:c(i)=0
Next i
For i=1 To n ‘统计每种物资的库存量
k = Asc(Mid(items(i), 2, 1))- Asc("A")+1
①
c(k)=i
Next i
j=0
For i=1 To nc
If c(i)<>0 Then j=j+1: q(j)=i
Next i
top = 0: bottom=j+ 1
j=1: k=bottom-1
Do While j<bottom ‘按各种物资的需求量进行等级分类
m=q(j)
②
If r<g(2*m-1) Then
top=top+1
If top<>j Then t= q(top): q(top)=q(j): q(j)=t
j=j+1
ElseIf r>= g(2*m) Then
bottom=bottom-1
t= q(j): q(j)=q(bottom): q(bottom)=t
Else
j=j+1
End If
Loop
List2.AddItem "编号 品名 库存"
List2. AddItem "------------------------------"
For i= 1 To k
s= fp(i, top, bottom)
List2.AddItem" " & s & " " & supplies(c(q(i))) & " " & b(q(i))
Next i
End Sub
Function fp(pos As Integer, head As Integer, tail As Integer) As String
If ③ Then
fp= "A"
ElseIf pos < tail Then
fp= "B"
Else
fp="C"
End If
fp = fp & Mid(items(c(q(pos))), 2, 1)
End Function
① ② ③
Dim a(1 To 6) As Integer
Randomize
a=n Mod k
n=n\k,k=k+1,s=s+a
a(1) = Int(11 * Rnd) + 2
For i = 2 To 6
a(i) = Int(11 * Rnd) + 2
If i Mod 2 = 1 And Not prime(a(i)) Then i = i - 1
ElseIf Not prime(a(i)) Then a(i) = a(i) + a(i - 1)
End If
Next i
'自定义函数 prime()用于判断参数是否为质数,prime(n) = True 则说明 n 为质数,否则为合数,定义函数代码略执行该程序后,a(1)~a(6)的值不.可.能.为( )
Function Search(m As Integer, pre As Integer) As Integer
Dim i As Integer
If m < 0 Then
Search = 0
ElseIf m = 0 Then
Search = 1
Else
For i = pre To m
Search = Search + Search(m - i, i) Next i
End If
End Function
Private Sub Command1_Click() Dim n As Integer
n = Val(Text1.Text) Label1.Caption = Search(n, 1)
End Sub
若在文本框 Text1 中输入“4”,则标签 Label1 中显示的内容为( )
编写VB程序,功能如下:程序运行时,在文本框Text1中输入序列,单击“计算”按钮Command11,在文本框Text2中输出逆序数,并在 Label3中输出判断结果(偶排列或者奇排列)。程序运行界面如图所示。
Function NiXuShu(s As String) As Integer '逆序数计算
Dim i As Integer, j As Integer, c As Integer , n(1 To 100) As Integer
c=0
For i= 1 To Len(s)
n(i) =Val(Mid(s, i, 1))
For j=1 To i- 1
ifThen
c=c+ 1
End If
Next j
Next i
End Function
Private Sub Command1_ Click()
Dim x As String, y As Integer
x = Text1.Text
Text2.Text = Str(y)
If y Mod 2= 0 Then Label3.Caption = "偶排列" Else Label3.Caption = "奇排列"
End Sub
明文:HelloWorld
密钥:abcabcabca
密文:HfnlpYosnd
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
|
A |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
B |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
C |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
D |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
E |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
F |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
G |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
H |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
I |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
J |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
K |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
L |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
M |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
N |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
O |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
P |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
Q |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
R |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
S |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
T |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
U |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
V |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
W |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
X |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
Y |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Z |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
依据上述算法描述设计了如下VB程序。请回答下列问题:
Const MIN_ASC = 65 ′字母“A”的ASCII值
Function X2D(x As String) As String ′字符串小写转成大写
Dim s As String, zf As String, i As Integer
s = “”
For i = 1 To Len(x)
zf = Mid(x, i, 1)
If zf >= “a” And zf <= “z” Then
s = s +
Else
s = s + zf
End If
Next i
X2D = s
End Function
Private Sub Command1_Click()
Dim M As String, K As String, C As String, flag As Boolean
Dim i As Integer, t As Integer, ch As Integer, pos As Integer, j As Integer
M = Text1.Text ′明文
K = Text2.Text ′密钥
t = Len(K)
K = X2D(K) ′将密钥全部转成大写
C = “ ” ′加密后的结果
For i = 1 To Len(M)
ch = Asc(Mid(M, i, 1))
flag = False
If ch >= 97 And ch <= 122 Then ch = ch - 32: flag = True
pos = ′密钥的字符位置值
If pos = 0 Then pos = t
j = Asc(Mid(K, pos, 1)) ′密钥字符的ASCII值
ch = ch - MIN_ASC
j = j - MIN_ASC
ch =
ch = ch + MIN_ASC
If flag Then ch = ch + 32 ′设置字母的大小写形式
C = C & Chr(ch)
Next i
Text3.Text = C
End Sub
以3×3数据块为例,原矩阵和转置矩阵的结果如图所示。
小明发现对这个矩阵进行转置后,主对角线上的数字没有发生变化,所以决定编写VB程序随机生成一个n×n的矩降再试一下。程序实现的功能如下:在文本框Text1中输入整数n(2≤n≤10),单击“生成矩阵”按钮Command1,生成n2个10到99之间(包含10和99)的随机整数,并以n行、n列矩阵的形式显示在列表框List1中,将转置后的矩阵也显示在List1中。再单击“主对角线”按钮Command2,则在标签Label1中输出两矩阵主对角线上的元素,运行界面如图所示,程序代码如下,请在画线处填入合适的代码。
Const max=100
Dim n As Integer
Dim a(1 To max)As Integer
Dim b(1 To max)As Integer
Private Sub Command1_Click( )
n=Val(Text1.Text)
For i=1 To n*n
a(i)= ①
Next i
p=1
For i=1 To n*n
b(i)=a(p)
If i Mod n=0 Then
p=p-n*(n-1)+1
Else
②
End If
Next i
List1.Clear
List1. AddItem Str(n)+"*"+Str(n)+"方阵”
Call Output(a( ))
List1.AddItem"转置矩阵"
Call Output(b( ))
End Sub
Private Sub Command2_Click( )
Label1.Caption="原矩阵":L.abel2.Caption="转置矩阵"
For i=1 To n
Label1.Caption=Label1.Caption & Str(a(i+(i-1)*n))
Label2.Caption=label2.Caption & Str(b(i+(i-1)*n))
Next i
End Sub
Sub Output(a()As Integer)
Dim line As String
line=""
For i=1 To n*n
If i>1 And i Mod n=1 Then
List1. AddItem line
line=Str(a(i))
Else
③
End If
Next i
List1. AddItem line
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
实现上述功能的VB代码如下。
Dim a(1 To 50) As Integer
Private sub Command1_Click()
Dim i As Integer
k=0: i=3
Do While i<= 100
If Not prime(i) Then
k=k+1
End If
i=i+2
Loop
For i=2 To k
If Then
List1 AddItem Str(a(i-1))+"和"+ Str(a(i))
End if
Next i
End Sub
Function prime (x As Integer)As Boolean
prime=False
For i=2 To Int(sar(x))
If x Mod i=0 Then
prime=True
Exit for
End If
Next i
End Function
实现上述功能的VB程序如下,请回答下列问题:
Dim book(1 To 100) As String '存储书籍的编号
Dim bname(1 To 100) As String '存储书籍的书名
Dim pos(1 To 100) As String '存储书籍所在阅览室的位置
Dim rroom(1 To 4) As String '存储每个阅览室存放书籍的大类
Dim n As Integer'在架书籍总数
Private Sub Form_ Load ()
'在架书籍根据编号进行升序排序,书籍编号、书籍名称和所在阅览室的位置分别存放在数组book、bname 和pos中,在架书籍总数为n,代码略
rroom(1)="ABCDEF":rroom(2)="GHIJKN"
rroom(3)="OPQRST":rroom(4)="UVXZ" '每个阅览室存放的书籍大类
End Sub
Private Sub Command1_Click ()
Dim id As Integer,i As Integer,key1 As String,key2 As String,flag As Integer
Dim start1 As Integer,end1 As Integer
id = Val(Text1. Text)
key1= Mid(rroom(id),1,1)
key2=
start1 =check (key1,1)
end1 = check (key2,-1)
For i = start1 to
List1.AddItem "编号:"+gs(book(i))+"位置:"+gs(pos(i))+"书名:"+gs (bname(i))
Next i
End Sub
Function check(key As String, flag As Integer) As Integer
Dim left As Integer, right As Integer, m As Integer
left=1:right=n
Do While left <= right
m= (left + right) \ 2
If Then
right= m - 1
Else
left=m+1
End If
Loop
check = left
End Function
Function gs(s As String) As String
Dim i As Integer
For i=1To15-Len(s)
s=s+""
Next i
gs=S
End Function
def fact(n):
s=1
for i in range(1, n+1):
s*=i
return s
sum=0
for i in range(4):
sum+=fact(i)
print(sum)
def jiemi():
d1=datetime.datetime.now() #获取当前系统时间d1
p=int(varin.get()) #获取输入文本框的数字密码
for i in range(0,p+1): #从0循环到正确密码数值
if i==p: #如果密码相同
d2=datetime.datetime.now() #获取当前系统时间d2
d=d2-d1 #取得时间差
#在输出文本框中显示解密用时
varout.set(str(d.seconds)+"秒"+str(d.microseconds/1000)+"毫秒")
下列选择错误的是( )
一共有n(3<=n<=100)个学校,各所学校之间的线路长度以一行共n*n个数据输入,
第i组的n个数据为从第i个学校出发到其他学校的线路长度,保证第i组的第i个数据为0。
编写VB程序,实现上述功能。运行程序,在文本框Text1中输入学校总数,
在文本框Text2中按题述方法输入各校之间的距离,点击命令按钮Command1后,在标签Label1中显示最短的线路总长。程序运行界面如图所示。
请回答下列问题:
Const INF = 2147483646
Dim n As Long, a As Long
Dim dis(1 To 10001) As Long, flag(1 To 10001) As Boolean
Dim head(1 To 10001) As Long, nxt(1 To 10001) As Long
Dim ed(1 To 10001) As Long, value(1 To 10001) As Long
Dim cnt As Long, tby As Long, sss As String
Dim i As Long, j As Long
Private Sub Command1_Click()
cnt = 0
n = Val(Text1.Text)
For i = 1 To n
dis(i) = INF : flag(i) = False : head(i) = 0
Next i
tby = 1
sss = Text2.Text
For i = 1 To n
For j = 1 To n
If i <> j Then Call addedge(i, j, a)
Next j
Next i
Dim ans As Long
dis(1) = 0 : ans = 0
For i = 1 To n
Dim hg As Long, u As Long
hg = INF
u = 0
For j = 1 To n
If Then
hg = dis(j)
u = j
End If
Next j
flag(u) = True
Dim p As Long
p = head(u)
Do While p <> 0
Dim v As Long
v = ed(p)
If Not flag(v) And dis(v) > value(p) Then
dis(v) = value(p)
End If
p = nxt(p)
Loop
Next i
Label1.Caption = Str(ans)
End Sub
Sub addedge(a As Long, b As Long, x As Long)
cnt = cnt + 1
value(cnt) = x
ed(cnt) = b
nxt(cnt) = head(a)
head(a) = cnt
End Sub
Function Getin() As Long
Dim aaa As String
aaa = Mid(sss, tby, 1)
If aaa = " " Then tby = tby + 1
aaa = Mid(sss, tby, 1)
Dim bbb As Long
bbb = 0
Do While aaa <> " " And tby <= Len(sss)
bbb = bbb * 10 + Val(aaa) : tby = tby + 1
aaa = Mid(sss, tby, 1)
Loop
Getin = bbb
End Function
def jiami(x):
if "A"<=x<="Z":
y=chr(ord(x)+32)
elif "0"<=x<="9":
y=str((int(x)+1)%10)
else:
y=x
return y
mingwen=input("请输入明文")
miwen=""
for x in mingwen:
miwen=miwen+jiami(x)
print("密文为:",miwen)
输入“Abc@789”并运行程序,输出结果是( )