Private Sub Command1_Click()
Dim dx As String, dw As String
Dim st As String, ch As Integer
Dim i ,n As Integer
dx = "零壹贰叁肆伍陆柒捌玖"
dw = "亿仟佰拾萬仟佰拾圆"
st = Text1.Text : n = Len(st)
If n > 9 Then
Text2.Text = "输入的数据超出所能转换的范围"
Else
For i = 1 To n
ch = ①
s = s + Mid(dx, ch + 1, 1) + Mid(dw, ② , 1)
Next i
Text2.Text = s + "整"
End If
End Sub
以上程序段运行时,为了实现上述功能,划线处应填入的代码分别为:
①; ②;
现已对该工程的依赖关系进行了梳理,结果如图b所示,标记“T”表示依赖关系需保留,标记“F”表示依赖关系需删除。
根据每个任务完成所需的天数和梳理后的依赖关系,编写程序,首先删除标记为“F”的依赖关系,然后计算工程最快完成所需的天数,并以工程最快完成所需的天数为期限,计算每个任务最晚必须开始的时间。
图a |
图b |
请回答下列问题:
def erase(lst):
i=0
j = len(lst)-1
while i<= j:
if lst[i][2]== 'T':
i+=1
else:
if lst[j][2] == 'T':
lst[i]=lst[j]
i + = 1
j - = 1
return i
若lst列表依次存储图b所示的依赖关系,如lst[0]为[0,5,'T'],调用erase(Ist)的数,则语句“lst[i] =lst[j]”的执行次数为。
def proc(n, lst,task):
pr=[0]*n
w=[0]* n # w[i]存放任务1最晚必须开始的时间
m=erase(lst)
for i in:
task[lst[i][1]][1] =lst[i][0]
pr[lst[i][0]] =1
c=[]
days= 0 # days存放工程最快完成所需的天数
for i in range(n):
if pr[i]==0:
k = i
s = 0
while k!= -1:
c.append(k)
s += task[k][0]
if s > days:
days=s
for i in range(n-1,-1,-1):
k =c[i]
if task[k][1] == -1:
w[k] = days-task[k][0]+1
else:
# 输出days,以及保存在w中的每个任务最晚必须开始的时间,代码略
'''
工程包含的任务数存入变量n
任务间的依赖关系存入lst列表
lst[0]包含3项,任务1st[i][0]依赖于任务lst[i][1],lst[i][2]存放保留/删除标记,任务数据存入task列表task[i]包含2项,task[i][0]为完成任务主所需天数,task[i][1]的初值为-1
代码略
'''
proc(n,lst,task)
请回答下列问题:
Const n= 12
Dim a(1 To n) As Integer, mc(1 To n) As Integer
Private Sub Command1_Click()
'n个用户的ID依次为1到n,读取n个用户的积分和排名数据分别存储到数组a和数组mc中,并在列表框Listl中显示ID、积分、积分排名,代码略
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer, d As Integer
Dim s As String, flag As Boolean, x As Integer, y As Integer
Dim p(1To20) As Integer '存储输入的ID和积分增值,每次输入不超过10组
For i=1 To 20
p(i)=0
Next i
s= Text1.Text
d=0:k=0
For i= 1 To Len(s)
If Mid(s, i, 1)= "," Then
If flag Then
x = Val(Mid(s, i-d, d))
For j= 1 To k Step 2
If p(j) =x Then Exit For
Next j
If j> k Then
p(j)=x:k=k+2
End If
Else
y = Val(Mid(s, i-d, d))
p(i+1)=p(j+ 1)+y
End If
flag= Not flag: d= 0
Else
End If
Next i
For i=1 To k\2
x=p(2*i-1):y=p(2*i)
me(x)= 1
For j= 1 Ton
If j<> x Then
If a(j)<a(x)+y And a(j)>=a(x) Then
End If
If a(j)> a(x) +y Then mc(x)= m(x)+ 1
Next j
Next i
'在列表框List2中显示ID,积分、排名,代码略
End Sub
程序运行界面如图所示,实现上述功能的VB程序如下。请回答下列问题:
Const m= 10
Dim n As Integer
Dim a(1 To m) As Integer
Private Sub Form_ Load( )
'获取原始数据依次存数组a中,并在列表框List1中显示,数据个数存变量m,代码略
End Sub
Private Sub Command1_ Click( )
Dim i As Integer, j As Integer, k As Integer
n= Val(Text1. Text)
i= 1
Do While i<=n
k=i
For j=i+1 To m
If a(j) > a(k) Then k=j
Next j
If i<>k Then
a(i)=a(i)+a(k): a(k)=a(i) - a(k) : ①
End If
i=i+ 1
Loop
For i=1 To n
List2. AddItem Str(a(i))
Next i
c==n
For i=n+1 To m
If Then c=c+1: List2. AddItem
Str(a(i)) '改错
Next i
List2. AddItem "筛选出" + ② + "个成绩"
End Sub
① ②