图1
徐明设计了一个VB程序用于寻找这个以211开头、可被2012整除的6位数。其算法流程图如图2所示,程序界面如图3所示,程序的代码编辑窗口如图4所示。

图2

图5
图6
A.Dim k As Integer
B.For k = 211000 To 211999
C.Label2.Caption = Str(k)
先打顺子牌(顺子指连续的5个及以牌型,如45678,顺子最大到A),若有多个顺子,先长后短长度和同按先小后大的顺序打出然后按4张、3张、2张、1张的顺序出牌,同一个牌型从小到大。
小刘依据上述算法设计了VB程序,其中牌型“10”用数字“0”代替表示,如图所示,请回答下列问题。
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim a (1 To 13) As Integer, max As Integer, t As Integer, last As Integer
Dim sa As String, stem As String, flag As Boolean
Const s="34567890JQKA2" '用0代替牌10
'发牌和洗牌代码略,在标签Label1显示初始牌型,洗牌后数组a各元素分别存储牌型3~2的数量
t=17 '刚开始牌有17张
Do While t>0 '打牌
flag=True
Do While flag '寻找牌中有没有顺子牌
max =0: k =1: flag=False
For i=1 To 13
If ① Then
k=k+1
If k > Max Then
Max = k
Last = i+1 '记录连续牌的最后一张
End If
Else
k=1
End If
Next i
If Max >= 5 Then '有顺子牌,把最长的这把顺子打出来
flag=True: sa= ""
For j = ② To last
Stem=Mid(s, j, 1)
sa=sa +stem+ ""
a(j)=a(j)-1
Next j
List1.AddItem sa '顺子在列表框显示
t=t-max
End If
Loop
For i= 1 To 13 '出4个一样的牌
If a(i)=4 Then
stem=Mid(s, j, 1)
List1.AddItem stem+stem+stem+stem
a(i)=0
③
End If
Next i
'3张、2张、单张出牌,具体代码略
Loop
End Sub
① ② ③




① ② ③
①网状模型 ②层次模型 ③关系模型 ④面向对象模型
a(1) = 1: a(2) = 3: a(3) = 7: a(4) = 5: a(5) = 4
s = "PRE2021reform": t = 0
For i = 1 To 5
If a(i) >= t Then t = a(i)
s = Mid(s, 1, t - 1) + Mid(s, t + 1)
Next i
Text1.Text = s
例如:若n=4,4个仓库中的疫苗数分别为50、13、80、27。若m=2,最小差值为10;若m=3,最小差值为40。
编写VB程序模拟上述功能,在文本框Text1中输入n(n≤15),在文本框Text2中输入m(m≤4),随机生成n个两位正整数,在列表框List1中输出。单击“计算”按钮Command1,在文本框Text3中输出最小差值,在列表框List2中输出每个国家获得疫苗的方案。程序运行界面如图所示。
Private Sub Command1_Click()
Const maxn = 15
Dim n As Integer, i As Long, j As Long, k As Long, p As Integer, m As Integer
Dim a(1 To maxn) As Long, f(1 To maxn) As Long
Dim s(1 To maxn) As String, max As Long, min As Long, ans As Long, ansi As Long
n = Val(Text1.Text): m = Val(Text2.Text)
List1.Clear: List2.Clear: Randomize
For i = 1 To n
①
List1.AddItem Str(a(i))
Next i
ans = 10000
For i = 1 To m ^ n '枚举所有的分配方案
For j = 1 To m
f(j) = 0
Next j
j = i: max = 0: min = 10000
For k = 1 To n
f(p) = f(p) + a(k)
j = j \ m
Next k
For k = 1 To m
If f(k) > max Then max = f(k)
If f(k) < min Then min = f(k)
Next k
If ② Then
ans = max - min
③
End If
Next i
Text3.Text = Str(ans)
For i = 1 To n
j = ansi Mod m
s(j + 1) = s(j + 1) + Str(a(i))
ansi = ansi \ m
Next i
For i = 1 To m
List2.AddItem s(i)
Next i
End Sub
① ② ③
L=['pear', 'apple', 'orange']
n=len(L[2])
ans=3
if n%2==0:
ans*=n
else:
ans+=n
ans-=5
print(ans)

输出样例
![]()
比如有7个选手,他们的等级分别是30,17,26,41,19,38,18,要进行3场比赛。最好的安排是选手2对选手7,选手7对选手5,选手6对选手4。此时等级差的总和等于(18-17)+(19-18)+(41-38)=5达到最小。
窗体form1的运行界面如下图所示,用户在文本框Text1中输入各位选手的等级(以逗号分隔),在文本框Text2中输人要对弈的场数k,单击计算按钮Commmand1,在文本框Text3中显示最小等级差总和。程序运行界面如图所示。
Dim a(0 To 1000) As Integer
Dim b(0 To 1000) As Integer
Private Sub Command1_ Click()
Sum=0
k = Val(Text2. Text)
s =Text1. Text
cnt =1
For i=1 To Len(s)
c=mid(s, i, 1)
If c="," Then cnt=cnt+1 Else
Next i
For i=1 To cnt-1
For j=1 To cnt-i
If Then
t = a(j): a(j) = a(j+ 1): a(j+1)= t
End If
Next j
Next i
'计算出各等级选手之间差值
For i=1To cnt- 1
b(i)=a(i+1)-a(i)
Next i
For i=1 To k
Min=i
If b(j) < b(Min) Then Min = j
Next j
Sum = Sum + b(Min)
Next i
Text3. Text = Str(Sum)
End Sub
from microbit import *
while True:
n=temperature()
if 34<=n<=36.5:
print('体温为'+str(n)+',体温偏低')
if 36.5<n<=37.5:
print('体温为'+str(n)+',体温正常')
if 37.5<n<=40:
print('体温为'+str(n)+',体温偏高')
sleep(2000)
如果小明的体温为36.8℃,则输出结果为。
A. 轻量级 B. 独立性,没有依赖,无序安装 C.对大小写有严格的区分