例如:像素A的颜色为RGB(10,40,100),像素B的颜色为RGB(80,20,200),则R通道偏离10-80=-70,G通道偏离40-20=20,B通道偏离100-200=-100,色差=正最大偏离值-负最大偏离值,即20-(-100)=120,当偏离全部为正时,负方向以0表示,反之,偏离全部为负时,正方向以0表示。
小明设计了计算两点色差的VB程序,程序界面如图所示:
以下VB程序用于计算两个随机颜色的色差,请完成以下各题。
Dim R1, G1, B1 As Integer '分别用于存储第一个像素的RGB值
Dim R2, G2, B2 As Integer '分别用于存储第二个像素的RGB值
Private Sub Form_Load()
' 随机生成两个数的 RGB值,并显示在text1—text6中,代码略
End Sub
Private Sub Command1_Click()
Dim alw as Integer
t1 = R1 - R2 : t2 = G1 - G2 : t3 = B1 - B2
If t1 > t2 Then
Max = t1 : Min = t2
Else
Max = t2 : Min = t1
If t3 > Max Then
Max = t3
ElseIf t3 < Min Then
Min = t3
End If
If Max * Min < 0 Then
alw = Max - Min
ElseIf Max < 0 Then
alw = -Min
Else
alw =
End If
Text7.Text =
End Sub
s=Text1.Text
n=Len(s)
For i=1 To n
y(i)=1
Next i
For i=1 To
For j=
To n
If
Then
y(j)=y(j)+1
Else
y(i)=y(i)+1
End If
Next j
Next i
上述程序段3个方框处的表达式分别为( )
Private Sub Commandl_Click( )
Dim s1 As String,s2 As String
Dim c As Integer,p As Integer
sl=Text1.Text:s2= ""
c=1:p=2
Do While p<Len(sl)
If Mid(s1,p,1)=Mid(s1,p-1,1)Ther
c=c+1
Else
s2 = s2+Str(c)+ Mid(s1,р-1,1)
①
End If
p=р+1
Loop
Text2.Text = ②
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
a=3; b=1; c=2
if a>b:
a,b=b,a
if b>c:
b,c=c,b
if a>b:
a,b=b,a
print(a,b,c)
其输出结果为( )
Const mw = "0123456789"
S = Text1.Text: s1 = "":s2 = ""
For i=1 To Len(s)
C = Mid(s,i,1)
If c >= "0" And c <= "9" Then
s1 = s1 + c
ElseIf c = "-" Then
s2 = s2 + s1 + c
s1 = ""
Else
End If
Next i
① t =(Val(c)+5) Mod 10
② c = Mid(mw,t,1)
③ s1 = c + s1
④ t=(Val(c)+4) Mod 10+1
⑤ c= Mid(mw,t+1,1)
⑥ s1 = s1 + c
则填空处的代码应该是( )
s = Text1.Text : sum = 0
c = 1 : j = 0
For i = 1 to len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
j = j + 1
Else
If c mod 2 = 1 then sum = sum + Val(Mid(s,i-j,j))
j=0 : c = c + 1
End If
Next i
Label1.Caption = Str(sum)
在文本框Text1中输入“20a20b1c29d9”,执行该段代码后,标签Label1中的结果是( )
题目:设计100以内的数中能同时被3或5整除的个数。
c =0: k = 1
For i = 2 To 10
If i Mod 2 <> 0 And a(k) < a(i) Then
k = i
c = c + 1
End If
Next i
数组元素a(1)到a(10)的值依次为“12, 33, 14, 6, 7, 23, 25, 37, 34, 40”,执行该程序段后,变量k和c的值分别为( )
list=['a','b','c','d','e','f','g']
list1=[]
list2=[]
for i in range(7):
if i%2==0:
list1.append(list[i])
else:
list2.append(list[i])
print(list1)
print(list1)
Const m = 6, n = 8, wt = 200
Dim d(1 To m + n) As String, a(1 To m + n) As Integer
Private Sub Form_Load()
'读取m + n 个人的体重及去向数据存入d 数组,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, p As Integer, q As Integer, s As String
Dim num As Integer, num1 As Integer, num2 As Integer
'以下代码实现从d 数组中提取每个人的体重数据,根据去向分段存入a 数组
p = 1 : q =
For i = 1 To m + n
s = Mid(d(i), 1, Len(d(i)) - 1)
If Mid(d(i), , 1) = "W" Then
a(p) = Val(s): p = p + 1
Else
a(q) = Val(s): q = q + 1
End If
Next i
num1 = GetNum(1, m)
num2 = GetNum(m + 1, m + n)
If num1 > num2 Then num = num1 Else num = num2
Label1.Caption = "过河需要最少往返次数:" + Str(num)
End Sub
Function GetNum(head As Integer, tail As Integer) As Integer
Dim i As Integer, j As Integer, k As Integer, cnt As Integer, t As Integer
'以下代码实现对数组a 降序排序
i = head
Do While i < tail
k = i: i = tail
For j
=
If a(j - 1) < a(j) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
i = j
End If
Next j
Loop
cnt = 0: i = head: j = tail
Do While i <= j
If Then j = j - 1
cnt = cnt + 1: i = i + 1
Loop
GetNum = cnt
End Function
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
if fenshu>=90: #变量fenshu表示分数
grade="A"
grade="B"
elif fenshu >=70:
grade="C"
elif fenshu >=60:
grade="D"
else:
grade="E"
#输出等第
警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0)
|
persons=[‘甲’,‘乙’,‘丙’, ‘丁’] for thief in persons: flag =(thief!=‘甲’)+(thief==‘丙’)+(thief ==‘丁’)+(thief!=‘丁’) if flag == 3: print(thief) |
运行结果是:
每段海明码编码方法如下:
插入二进制位:在第1、2、4、8位置上插入4个二进制位r1、r2、r3、r4,初值为0。把原8位二进制数d1~d8从左往右依次填入剩余位置中,原数据位和插入的二进制位如图a所示:
图a
计算插入的校验位的值:把每个位置号转换成4位二进制数,选出形如“***1”(“*”表示一位0或1)的位置号,则统计这些位置号对应数据位中的“1”的个数,若是奇数,则r1为1,否则为0;再选出形如“**1*”的位置号,则统计这些位置号对应数据位中的“1”的个数,若是奇数,则r2为1,否则为0;以此类推……
如8位二进制数“10101101”的编码过程如下:
1)插入4个二进制位,初值为0,剩余位置依次填入原数据位,如图b所示。
图b
2)计算插入的校验位的值,选出形如“***1”的位置号,即1、3、5、7、9、11,统计这些位置号对应数据位中“1”的个数为2,故r1=0,同理可得:r2=1,r3=0,r4=1,如图c所示。
图c
3)按位置号从小到大依次拼接各数据位得到最后编码“011001011101”。
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, m As Integer
Dim s As String, ch As String, result As String
Dim a(1 To 12) As Integer, n(1 To 4) As Integer
Dim b(1 To 8) As Integer
b(1) = 3: b(2) = 5: b(3) = 6: b(4) = 7
b(5) = 9: b(6) = 10: b(7) = 11: b(8) = 12 '编码数据的插入位置
s = Text1.Text: result = ""
For i = 1 To Len(s) \ 8
For j = 1 To 12
a(j) = 0
Next j
For j = 1 To 8
ch = Mid(s, (i - 1) * 8 + j, 1)
'把编码数据插入相应位置
Next j
For j = 1 To 4
n(j) = 0
Next j
For j = 1 To 12
m = j
For k = 1 To 4
If m Mod 2 = 1 Then
m = m \ 2
Next k
Next j
For j = 1 To 4
a(2 ^ (j - 1)) =
Next j
For j = 1 To 12
result = result + Chr(Asc("0") + a(j))
Next j
Next i
Text2.Text = result
End Sub

请回答下列问题:
Private Sub Count_Click()
Dim word(1 To 500) As String, num(1 To 500) As Integer
Dim s As String, c As String, tmp As String, t As Integer
Dim i As Integer, j As Integer, k As Integer, low As Integer, high As Integer
Dim m As Integer, n As Integer, b As Integer
For i = 1 To 500
num(i) = 0
Next i
s = Text1.Text : n = Len(s)
i = 1 : b = 1 : m = 0 : j = 0
Do While i <= n
c = Mid(s, i, 1)
If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then
j = j + 1
Else
If j > 0 Then
tmp =
low = 1
high = m
Do While low <= high
t = (low + high) \ 2
If tmp = word(t) Then
Exit Do
If tmp < word(t) Then
high = t - 1
Else
low = t + 1
Loop
If Then
For k = m To low Step -1
word(k + 1) = word(k)
num(k + 1) = num(k)
Next k
num(low) = 1
m = m + 1
Else
num(t) = num(t) + 1
End If
j = 0
End If
b = i + 1
End If
i = i + 1
Loop
List1.Clear
For i = 1 To m
List1.AddItem word(i) + ":" + Str(num(i)) + "次"
Next i
End Sub
Function Lowcase(t As String) As String
Dim c As String, s As String, i As Integer
s = ""
For i = 1 To Len(t)
c = Mid(t, i, 1)
If c >= "A" And c <= "Z" Then s = s + Chr(Asc(c) + 32) Else s = s + c
Next i
End Function
Dim a(1 To 20) As Integer
Dim i As Integer, n As Integer
Private Sub Form_Load()
Dim s As String, ch As String
n = 1:s = Text1.Text
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch <> "," Then
a(n) =
Else
n = n + 1
End If
Next i
End Sub
Private Sub Command1_Click()
Dim j As Integer, t1 As Integer, t2 As Integer
For i = 2 To n/2
t1 = a(2 * i - 1): t2 = a(2 * i): j = i - 1
Do While
a(2 * j + 1) = a(2 * j - 1)
a(2 * j + 2) = a(2 * j)
j = j - 1
If j = 0 Then Exit Do
Loop
a(2 * j + 1) = t1
Next i
For i = 1 To n/2
Text2.Text = Text2.Text + Str(a(2 * i - 1)) + Str(a(2 * i))
Next i
End Sub
PRIVATE SUB FORM_CLICK( )
X=3 : Y=12
IF X>2 THEN Y=3
Y=5
PRINT Y
END SUB
s="aabbccabc"
st=s[1]
for i in range(1,len(s)):
if len(st)==0 or s[i]!=st[len(st)-1]:
st=st+s[i]
else:
st=st[0:len(st)-1]
print(st)
运行该段代码后,输出结果为( )
ma=a[0];mb=a[0];pa=0;pb=0
for i in range(1,10):
if ma < a[i]:ma = a[i];pa=i
if mb > a[i]:mb = a[i];pb=i
下列关于该程序段功能描述正确的是( )
num=input("请输入数字串:");c=0
for i in range(1,len(num)):
if
and f==False:
f=True
elif
and f==True:
c=c+1
f=False
print("有",c,"座数字山峰")
方框(1)(2)(3)的代码由以下部分组成:
①f=True ②f=False ③num[i-1]>num[i] ④num[i-1]<num[i]
下列选项中代码顺序正确的是( )
i=i+1 : j=j+1
Do While i<=Len(s1) And j<=Len(s2)
If Mid(s1, i, 1 )=Mid(s2, j, 1) Then
i=i+1 : j=j+1
Else
End If
Loop
If i>Len(s1) And j>Len(s2) Then Text1.Text=“相同”Else Text1.Text=“不相同”
方框中的代码由以下三部分组成:
①If Mid(s1, i, 1)="" Then i=i+1
②If Mid(s2, j, 1)="" Then j=j+1
③If Mid(s1, i, 1)< > " " And Mid(s2, j, 1)<>" " Then Exit Do 'Exit Do表示退出循环
代码顺序正确的是( )