Private Sub Command1_Click()
Dim s As String, result As String, i As Integer, j As Integer, t As Integer
s = Text1.Text :t = Len(s) :result = ""
i=1
Do While i <= t
j = i
Do While i < t
If Asc(Mid(s, i + 1, 1)) = Asc(Mid(s, i, 1)) + 1 Then
i = i + 1
Else
Exit Do
End If
Loop
If i > j Then
result = ①
Else
result = result + Mid(s, i, 1)
End If
i = i + 1
Loop
Text2.Text = ②
End Sub
Private Sub Command1_Click()
Dim key As String
Dim a As Integer, b As Integer, ans As Integer, ch As String
key=Text1.Text
i=1
Do While i<=Len(key)
ch=Mid(key,i,1)
If ch>="0" And ch<="9" Then
Else
Exit Do ′退出循环
End If
Loop
b=Val(Mid(key,i+1,Len(key)-i))
ans=a+b
Label1.Caption="算式计算结果为:"+Str(ans)
End Sub
c=0
k=1
For i= 2 To 8
If I Mod 2=1 And a(k)<a(i) Then
k=i
c=c+1
End If
Next i
数组元素a(1)到a(8)的值依次为“3,6,2,4,13,7,13,20”,执行该程序段后,变量k和c的值分别为( )
Dim a(1 To 10)As Integer
Function find (L As Integer, R As Integer, key As Integer) As Integer
If L>R Then
find=0:Exit Function
ElseIf a(L)>=key Then
find=L: Exit Function
Else
If a(m)<key Then
find=find(M+1, R, key)
Else If Then
find=find(L, M-1, key)
Else
find=M
End If
End If
End Function
Private Sub Command1_Click( )
Dim k As Integer
Dim p As Integer
k=Val(Text1.Text)
Text2.Text=Str(a(p))
Text3.Text=Str(p)
If p=0 Then
Text2.Text="无"
End If
End Sub
Private Sub Form_Load( )
a(1)=3: a(2)=3: a(3)=3: a(4)=4: a(5)=7: a(6)=7
a(7)=10: a(8)=13: a(9)=19: a(10)=21
For i=1 To 10
List1.AddItem Str(a(i))
Next i
End Sub
def f(x):
#定义方程
return x**3-x**2+x-1
a=float(input("请输入解区间的左边界:"))
b=float(input("请输入解区间的右边界:"))
while abs(b-a)>1e-6:
x0=(a+b)/2
if:
b=x0
if:
a=x0
if:
break
print("解为:",x0)
input("运行完毕,请按回车键退出...")
例如,共有N=5个景点,每个景点连接的下一个景点分别是 2,4,2,3,1。
| 景点号 | 1 | 2 | 3 | 4 | 5 |
| 下一景点号 | 2 | 4 | 2 | 3 | 1 |
则他可以从2号景点出发,最多可以游玩2号、3号、4号三个景点。程序代码如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer, d(1 To 100) As Integer '数组 a 存放下一景点号
Dim jd As String, m As String, c As Integer, i As Integer
Dim s As Integer, p As Integer, k As Integer, ans As Integer
jd=Text1.Text+","
s=0 : c=0
For i=1 To Len(jd)
m=Mid(jd,i,1)
If m<>"," Then
①
Else
c=c+1 : a(c)=s: s=0
End If
Next i
For k=1 To 100 d(k)=0
Next k
ans=0: k=0
For i=1 To c '枚举起点
If d(i)=0 Then p=i
Do While p<=c
If d(p)=0 Then
k=k+1 :d(p)=k
Else
②
If y>ans Then ans=y k=0
Exit Do
End If
'改错
Loop
End If
Next i
Text2.Text=Str(ans)
End Sub
① ②
i=1:j=6:c=1
key=int(rnd*100+1)
do while i<=j
m=(i+j)\2
c=c+1
if key<d(m) then j=m-1 else i=m+1
loop
数组 d(1)~d(6)的值分别为“17,21,29,32,39,75”,则程序运行结束后,下列说法错误的是( )
1)整体放置。按格子编号由小到大的次序查找第一个可放置该组全部物品的空区域(空区域是指从某个空格子开始的同层连续的所有空格子),若找到,则在该空区域居中、连续放置该组全部物品,如图a所示。
2) 零散放置。若所有空区域格子数都小于该组物品数,则将该组每个物品依次放置在当前编号最小的空格子中,如图b所示。
编写VB程序,模拟物品放置。运行程序,在列表框List1中显示每组物品的组号和数量,单击“放置”按钮Command1,在列表框List2中显示每组物品放置结果。程序运行界面如图c所示。
图c
Constm = 50 'm表示物品柜的格子数
Const w = 10 'w表示物品柜每层的格子数
Const n = 9 'n表示物品的组数
'f(i)存储第i个格子开始的同层连续的所有空格子数。f(i)为0表示第i个格子不是空格子
Dim f(m)As Integer
Dim a(n)As Integer
Private Sub Form_Load( )
'读取各组物品的个数依次存入数组a,并在List1中显示
'代码略
End Sub
Function getpos(r As Integer As Integer
'按格子编号从小到大的次序,查找空格子数≥r的第一个空区域
'若找到,返回该空区域的起始编号,否则返回 -1
'代码略
End Function
Private Sub Command1_Click( )
Dim i As Integer,j As Integer, k As Integer,p As Integer,v As Integer
Dim s As String
For i = 1 To m
f(i) = w -(i -1)Mod w 'w为10,表示每层的格子数
Next i
v = 1
For i = 1 To n
s = ""
p =
If p = - 1 Then
j = 1
Do While j < = a(i)
If f(v) <> 0 Then
s = s + Str(v)
f(v)=
j = j + 1
End If
Loop
Else
k =(f(p)- a(i)) \ 2
For j = k To 1 Step - 1
f(p) = j
p = p + 1
Next j
For j =
f(j) = 0
s = s + Str(j)
Next j
End If
List2. AddItem "第" + Str(i) + "组:" + s
Next i
End Sub
B .
C .
D .
i = 1: j = 8: k = 4
Randomize
Key = (Int(Rnd * 4)+20)*4
Do While i <= j
m = (i + j) \ 2
If Key = a(m) Then
Exit Do
ElseIf Key < a(m) Then
j = m - 1: k = k / 2
Else
i = m + 1: k = k * 2
End If
Loop
数组元素a(1)到a(8)的值依次为“80,82,84,86,88,90,92,94”,执行该程序段后,变量k的值可能是( )
①原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示;②原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个为0,第2个为0;③原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个为该数本身。
根据上述压缩方法,对应的解压缩方法示例如图所示。
小明学习了Python的PIL、matplotlib和numpy等模块知识后,现有图像文件“台州.bmp”,该文件的颜色模式为RGB,将该图像文件的每个像素点转换成灰度值(值为整数)后,使用上述压缩方法进行压缩并保存为文本文件。颜色RGB值转灰度值的公式如下:
灰度值=0.299×红色颜色分量+0.587×绿色颜色分量+0.114×蓝色颜色分量
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img = np.array(Image.open("台州.bmp"))
row,cols,rgb = img.shape
s=[]
for i in range(row):
for j in range(cols):
r,g,b = img[i,j]
hdz =
s.append(hdz)
ss = []:j = 0
while j<len(s)-1:
if s[j]!=s[j+1]:
if s[j]!=0:
ss.append(s[j])
else:
ss.extend() #extend 函数用于在列表末尾一次性追加另一个序列中的多个值
j+=1
else:
c = s[j]
for k in range(j+1,len(s)) :
if c!=s[k]:
break
else:
ss.extend([0,k-j,s[j]])
j=k
if j!=len(s):
ss.append(s[j])
f = open("台州 255.txt","w+")
f.write(",".join(map(str,ss)))
f.close()