1图 |
2图 |
Private Sub Command1_Click()
Dim s As Single, x As Single, n As Integer, i As Integer
Randomize
List1.Clear
s =
n = Val(Text2.Text)
For i = 1 To n - 1 '通过循环语句产生n-1个红包的随机值
x = Int((Rnd() * s / () + 0.005) * 100) / 100
List1.AddItem Str(x)
s =
Next i
x = Int((s + 0.005) * 100) / 100 '产生最后一个红包
List1.AddItem Str (x)
End Sub

Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim i As Integer, n As Integer
Dim c1 As String, s1 As String
Dim c2 As String, s2 As String
Dim c3 As String, s3 As String
List1.Clear
s1 = "甲乙丙丁戊己庚辛壬癸"
s2 = "子丑寅卯辰巳午未申酉戌亥"
s3 = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
n = Val(Text1.Text)
For i = n To
a = (i + 6) Mod 10
b = (i + 8) Mod 12
c1 = Mid(s1, a + 1, 1)
c2 = Mid(s2, b + 1, 1)
c3 = Mid(s3, b + 1, 1)
List1.AddItem + "年" + c1 + c2 + " " + c3
Next i
End Sub
第一步:x被除16取余数r1,r1是所求的十六进制数的一个数(第一次就是个位数);
第二步:r1转换成十六进制数的一个基数并转换成字符,追加到十六进制数S的左边;
第三步:求出x被除16的商x1;
第四步:对x1重复(1)、(2)、(3)过程,直至商为0;
第五步:最后的S即为所求的十六进制数;
下列Visual Basic程序的功能是将一个十进制正整数x转换成十六进制数。界面如图所示,在文本框Text1中输入一个十进制数制,单击“十进制转十六进制按钮”(Command1)后,在文本框Text2中输出转换的结果。 相应的Visual Basic程序如下:

Private Sub Command1_Click()
Dim s As String, r As Integer
dec = val(Text1.Text) ’dec得到一个十进制整数,例如:255;
base = 16 ’base表示16
s = "" ’s变量存放要转换到的十六进制整数;
Do While dec <> 0
r = ①
If r >= 10 Then ’如果base>10进制,r可能>10;
s = Chr(65 + (r - 10)) + s ’Chr (65)="A", 16进制数A对应10;
Else ’Chr(66)="B", 16进制数B对应11;
Private Sub Command1_Click()
Dim Pi As Single, t As Single
Dim n As Integer, s As Integer
Pi = 0
t = 1: n = 1:s =1
Do While Abs(t) >= 0.0001
Pi = Pi + t
n =
s=
t = s *1 / n
Loop
Text2.Text =
End Sub
用VB软件设计的自摘收费程序,功能如下:在文本框Textl中输入自摘的人数n,在文本框Text2中输入摘得桔子重量w。界面右上方是小游戏部分,程序在文本框Text3显示随机产生的桔子层数m,根据图中所示的堆桔子方法(第1层1个;第2层4个;第3层9个……),请顾客计算出m层桔子总数s,输入到文本框Text4中,单击“是否优惠计算”按钮Command1,就会在标签Label4中输出最后的费用f,并在标签Label7中给出提示是否“优惠后的费用”。运行效果如图所示:
Dim m As Integer
Private Sub Command1_Click()
Dim n As Integer, s As Integer
Dim w As Single, f As Single
n = Val(Text1.Text) '输入大人人数n
w = Val(Text2.Text) '输入重量w
f = 20 * n + 10 * w '计算无优惠的费用f
s = 0
For i = 1 To m '计算桔子总数
s = s + i * i
Next i
If s= Then '判断是否拿到优惠计算费用
f = f * 0.5 + s * 0.3'计算优惠后的费用
Label7.Caption = "恭喜你,这是优惠后的费用!"
Else
Label7.Caption = "很遗憾,你没有算对哦!"
End If
Label4.Caption = Str(f) '输出最后的费用f
End Sub
Private Sub Form_Load()
Randomize
m = '随机产生15层及以内的桔子层数不含0
Text3.Text = Str(m)
End Sub

程序设计过程中数据的存储和计算方法如下:
⑴学生体能分数的存储:如图2所示,第1位学生的游泳、跑步、跳远分数依次存入数组score的第1、2、3个元素里,第2位学生的游泳、跑步、跳远分数依次存入数组score的第4、5、6个元素里,以此类推。
⑵计算名次的算法:先统计每个分数的个数,存入数组a,如图3中a(96)值为9,表示共有9个96分;然后按照分数从高到低依次计算每个有效分数(该分数的个数不为0)对应的名次存入数组b,分数相同时名次并列,如图3中b(96)值为10,表示96分的名次是(并列)第10名,以此类推。

请回答下列问题:
Dim m As Integer ' 学生人数
Dim score(1 To 3000) As Integer ' 存放学生分数
Dim xm(1 To 1000) As String ' 存放学生姓名
Private Sub Command1_Click()
Dim i As Integer, t As Integer, code As Integer, mc As Integer
Dim a(0 To 100) As Integer '存放每个分数的个数
Dim b(0 To 100) As Integer '存放每个分数的名次
Dim code_n(1 To 3) As String
code_n(1) = "游泳" : code_n(2) = "跑步" : code_n(3) = "跳远"
code = Val(Text1.Text)
For i = 0 To 100
a(i) = 0
Next i
sum = 0
For i = 1 To m '计算每个分数的个数及体能测试优秀的人数
t = ①
a(score(t)) = a(score(t)) + 1
If score(t) >= 90 Then sum = sum + 1
Next i
mc = 1
For i = 100 To 0 Step -1 '计算每个分数的名次
If a(i) <> 0 Then
b(i) = mc
mc = ②
End If
Next i
List2.Clear
List2.AddItem " 姓名 " + ③ + " 名次"
For i = 1 To m
'在List2中输出m个学生的姓名、指定项目的分数及名次,代码略
Next i
sum = Int(sum / m * 10000 + 0.5) / 100
Label2.Caption = "优秀率是:" + Str(sum) +"%"
End Sub
Private Sub Form_Load()
’从数据库读取姓名存入数组xm,体能测试数据存入数组score,总人数存入变量m。
’代码略
End Sub
①②③
Private Sub Command1_Click()
Dim a(1 To 51) As Integer, b(1 To 51) As Integer, c(1 To 51) As Integer Dim lens1 As String, lens2 As String
lens1 = Len(Text1.Text) :lens2 = Len(Text2.Text)
For i = Len(Text1.Text) To 1 Step -1 ‘读取数据,逐位保存在数组中
a(i) = Mid(Text1.Text, lens1 - i + 1, 1) Next i
For i = Len(Text2.Text) To 1 Step -1
b(i) = Mid(Text2.Text, lens2 - i + 1, 1) Next i
For i = 1 To 51 ‘从个位到高位逐位求和
c(i) =
If c(i) > 9 Then
c(i) = c(i) - 10
c(i + 1)=
End If Next i
f = False '从左到右输出第一个不为 0 的元素开始从高位到低位输出和
For i = 51 To 1 Step -1
If c(i) <> 0 Then f = True
If f Then Text3.Text = Text3.Text & c(i) Next i
End Sub
查找的英文单词由连续的ASCII英文字符(a~z或A~Z)组成。组合词程序会进行分解,如river-small可拆分为2个单词river和small,查找的英文单词不区分大小写。程序代码如下,但加框处代码有错,请改正:
Private Sub Command1_Click()
Dim article As String,f As String,count As Integer
Dim i As Intege,,begin As Integer,s As String
article=Text1.Text : f=Text2.Text : count=0
begin = 1
For i=1 To Len(article)
t = Mid(article,i,1)
If Not(t>="A"And t<="Z" Or t>="a" And t<="z") Then
If i > begin Then
s =
'①
If LowerCase(f)=LowerCase(s) Then
count = count+1
End If
End If
begin = i + 1
End If
Next i
Text3.Text=Str(count)
End Sub
Function LowerCase(word As String) As String '单词转化为全小写的形式
Dim i As Integer,c As String
For i=1 To Len(word)
c = Mid(word,i,1)
'小写英文字母的ASCII码值比大写字母的值大32
If c>="A" And c<="Z" Then c =
'②
LowerCase = LowerCase + c
Next i
End Function
以上程序段运行时,为了实现上述功能,加框处代码应改正为:
①;②。
Private Sub Command1_Click()
Dim msg As String, c As String, tmp As String, s As String, flag As Boolean msg = Text1.Text
msg = msg + "/" '标记字符串结束符
tmp = "" s = ""
flag = True
For i = 1 To Len(msg)
c = Mid(msg, i, 1)
If ① Then flag = False
tmp = tmp + c
ElseIf flag = False Then s = s + tmp + ","
tmp = ""
②
End If
Next i
Text2.Text = s
End Sub
程序界面如图所示,在文本框Text1中输入一个正整数,单击“转换”按钮(Command1)后,对应的二进制数在文本框Text2中显示出来。

解决此问题的Visual Basic程序如下,在程序①和②划线处,填入适当的语句或表达式,把程序补充完整。
Private Sub Command1_Click()
Dim x As Integer,s As String,r As Integer,t As Integer
x=Val(Text1.text)
s=“”
Do While ①
r=x Mod 2
s=Str(r)+s
x=②
Loop
Text2.text=s
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
a= ②
b= Val (Mid(key,+1, Len (key)-i))
ans =a +b
Label1. Caption= “算式计算结果为: “+str(ans)
End Sub
① ②
编写“幻圆求解”VB程序,实现如下功能:
单击“随机出题”按钮Command 1,按照圆环从外向里,每个圆环从12点位置开始按顺时针方向,将32个位置上的数字依次存入a数组,若某位置上的数字空缺则其值为0,空缺的数字最多不超过10个,并确保随机生成的数据有解,在列表框List 1中按4行8列的形式输出a(1) ~a(32)的值,若值为0则显示[]。
单击“显示结果”按钮Command 2,从第1个空缺位置开始,验证该位置是否为本行上的唯一空缺或是本列上的唯一空缺,如果不是则验证下一位置;否则输入其值并回到第1个空缺位置重新开始验证,直至所填满所有的空缺。最后,将结果按规定格式输出在列表框List 2中,程序运行界面如图所示:
Dim a(1 To 32) As Integer
Dim b( 1 To 10) As Integer
Private SubCommand1_Click()
'随机生成有解的数据,并在列表框
List1中输出,代码略
End Sub
Private Sub Command2_Click()
Dim n As Integer, i As Integer, x As Integer
n=0
For i= 1 To 32
If a(i) = 0 Then
n=n+1:b(n)=i
End If
Next i
x=1
Do While x<=n
If a(b(x) ) = 0 Then
If ① Then x= 0
End If
x=x+1
Loop
'将结果按规定格式在列表框List2中输出,代码略
End Sub
Function R check(x As Integer) As Boolean
Dim count As Integer, sum As Integer, y As Integer, i As Integer
check=False
If a(x) <>0ThenExit Function
count=0:sum=0:y= ②
For i= 1 To 8
If a(y*8+i) = 0 Then count =count+ 1
sum=sum+a(y*8+i)
Next i
If count = 1 Then
a(x)= ③ :R check=True
End If
EndFunction
Function C check(x As Integer) As Boolean
'用于验证是否为本列唯一空缺, 如果是则填入值并返回True, 否则返回False
'实现上述功能的代码略
EndFunction
①②③
Private Sub Command1_Click()
Dim y As Integer, r As Integer
Dim s As String, t As String
t = "0123456789ABCDEF"
s = ""
y = ①
Do While y > 0
r = y Mod 16
s = ②
y = ③
Loop
Label2.Caption = Text1.Text + "转化成十六进制数为:" + str(s)
End Sub
已知包含25项的数列:1,2/3,3/5,……,24/47,25/49
问题1:写出该数列的通项公式f(n)=
问题2:以下是计算s=1+2/3+3/5+……+24/47+25/49的程序,请补全代码。
Dim i As Integer
Dim s As Single
s = 0
For i = 1 To 25
s = s +
Next i
Print s
① 已知5个电阻阻值,求它们并联后的阻值
② 求某个同学期中考试各科成绩总分
③ 求某个班级期中考试某门科目的最高成绩
④ 根据三个系数a、b、c的值,求一元二次方程ax2+bx+c=0的解
设计一个VB程序,通过在文本框Text1输入托运行李的质量,计算并输出托运行李的费用,行李质量超过150千克,则显示“行李超重!”。结果在文本框Label1中显示。程序运行界面如图a所示。
Private Sub Command1_Click( )
Dim x As Double,y As Double
①
If x>150 Then
Label1l.Caption="行李超重!"
Else
If ② Then
y=0.35*50+0.5*(x-50)
Else
y=0.35*x
③
Label1.Caption="行李收费"+ ④ 十"元"
End If
End Sub
画线处应填入的代码为:①;②;③;④。
a=flat(input("输入第一个数:")
ch=
b=float(input("输入第二个数:"))
if ch== "+":
print(a,ch,b,"=",a+b)
elifch=="-":
print(a,ch,b,"=",a-b)
elif ch == *":
print(a,ch,b,"=",a*b)
elif ch == "/":
if
print(a,ch,b,"=",a/b)
else:
print("除数不能为0")
else:
print("运算符不正确")
配股除权价=(除权登记日收盘价+配股价×每股配股比例)/( 1+每股配股比例)
全额参与配股的最大配售量计算规则如下:
1)该股的配售比例是0.19。也就是说,假如你有10000股该股股份,最大配售量即为10000×0.19=1900(股)。
2)如果所获配股份额不足1股,那么0.65股及以上的为1股,0.65股以下的为0股。
回答下列问题:
flag=False
pgj=7.02 #配股价
bili=0.19 #每股配股比例
spi-flatinput("请输入除权登记日收盘价:")
num =floatinput("请输入持有的股份数:")
cqj = ① #配股除权价
maxps= num*bili #最大配售量
if ② :
flag=True
if flag :
print("配股除权价", cqj,"最大配售量:" ,int(maxps)+1)
else:
print("配股除权价:", cq,"最大配售量:" ,nt(maxps))
① ②