高分寻求VB高手帮忙解决一下,答案及各语句的意思,谢谢!

四、程序填空题1、下面的程序是找出两个整数a和b,使得a<b,a+b=99,a和b的最大公约数是3的倍数,并统计满足条件数对的个数。OptionexplicitDimaa... 四、 程序填空题
1、 下面的程序是找出两个整数a和b,使得a<b,a+b=99,a和b的最大公约数是3的倍数,并统计满足条件数对的个数。
Option explicit
Dim a as integer ,b as integer ,n as integer ,c as integer private function Gcd (byval a as integer ,byval b as integer)as integer
Do
C=a mod b:a=b:b=c
Loop ( )
Gcd=a
End function
Private sub form_click()
N=0
For a=1 to 49
B= ( )
C=Gcd(a ,b)
If c mod 3=0 then
( )
Print a , b ,c
End if
Next a
Print n
End sub

2、 下面程序是把给定的十六进制数转换为十进制数
提示:一个十六进制正整数转换为十进制数的方法是直接用下面的幂级数展开运算而得。(anan-1……a1)16=an×n-1+an-1×16n-2+……+a1×16
option explicit
private sub form_click()
dim st as string ,dem as long
st=inputbox(“输入一个十六进制数”)
dem=convert(st)
print st ;”=>”;dem
end sub
private function convert (s as string)as long
dim n as integer ,I as integer ,substring as string*1
dim p as long ,k as long , as c1 as integer
n= ( )
p=16-n
for I=1 to n
p=p/16
substring= ( )
case “0” to “9”
k=k+p*val(substring)
case
k=k+p*val(substring)
case
asc1=asc(substring)-asc(“A”)+10
( )
end select
next t
convert=K
end function

3、 下面程序的功能是通过键盘输入一个正整数N,找出所有分母为N,找出所有分母为N,且数值介于1/3和1/4之间的最简分数(即分子,分母除1外无公因子)。
Private sub command1_click()
Dim I as integer ,J as integer
Dim N as integer ,flag as Boolean
N=val(inputbox(“输入分母N;”,,,,,))
For I=1 to N-1
Call sub1 (I,N,flag)
If ( ) then
Print cstr(I);”/”;cstr(n)
End if
Next if
End sub
Private sub sub1 (K as integer,n as integer,f as boolean)
Dim I as integer
If ( ) then
For I=2 to k
If ( ) then
Exit sub
End if
Next I
F=true
End if
End sub

五、 程序设计题
(1) 输入N的值(0<n<10),计算下列表达式的值并在窗体上显示
s=1 ! –2! +3! -4!+……n!
(2) 完成实现以下功能的程序
窗体上放置一个图片框pic1 ,当鼠标在图片框pic1中按下左键,可以在其中画出红色的鼠标轨迹线,直到鼠标按下右键停止绘图。
(3)完成实现以下功能的程序
将“c:\file1.dat”文件中的内容读出,去掉字符间的所有空格,然后把结果保存在“c:\file2.dat”文件中。
展开
 我来答
兰馨谷
2008-07-11 · TA获得超过149个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:425万
展开全部
四、 程序填空题
------------------
1、找整数a和b……

Option Explicit
Dim a As Integer, b As Integer, n As Integer, c As Integer

Private Function Gcd(ByVal a As Integer, ByVal b As Integer) As Integer
Do
c = a Mod b: a = b: b = c
Loop While c Mod 3 > 0 '( )
Gcd = a
End Function

Private Sub form_click()
n = 0
For a = 1 To 49
b = 99 - a '( )
c = Gcd(a, b)
If c Mod 3 = 0 Then
n = n + 1 '( )
Print a, b, c
End If
Next a
Print n
End Sub

-------------

2、十六进制数转换为十进制数
Private Sub form_click()
Dim st As String, dem As Long
st = InputBox("输入一个十六进制数")
dem = convert(st)
Print st; "=>"; dem
End Sub

Private Function convert(s As String) As Long
Dim n As Integer, I As Integer, substring As String * 1
Dim p As Long, k As Long, c1 As Integer

s = UCase(s)
k = 0
n = Len(s) '( )

For I = 1 To n
p = 16 ^ (n - I)
substring = Mid(s, I, 1) '( )

Select Case substring
Case "0" To "9"
k = k + p * Val(substring)
Case "A"
k = k + p * (Asc(substring) - Asc("A") + 10)
Case "B" to "F"
k = k + p * (Asc(substring) - Asc("A") + 10)

End Select
Next
convert = k
End Function

''''''''
这提代码实在有些凌乱且有点残缺,我按大概的意思重写了部分,已测试通过
这只不过是道考试题目,你在实际应用中碰到千万不要用这么傻的方法,下面一句代码即可搞定
dem = Val("&H" & st)

--------------------------

3、找出所有分母………

Private Sub command1_click()
Dim I As Integer, J As Integer
Dim n As Integer, flag As Boolean
n = Val(InputBox("输入分母N:"))

For I = 1 To n - 1
flag = False '另加否则不能实现功能
Call sub1(I, n, flag)
If flag Then '( )
Print CStr(I); "/"; CStr(n)
End If
Next
End Sub

Private Sub sub1(K As Integer, n As Integer, f As Boolean)
Dim I As Integer
If K / n > 1 / 4 And K / n < 1 / 3 Then '( )
For I = 2 To K
If (K Mod I = 0) And (n Mod I = 0) Then '( )
Exit Sub
End If
Next I
f = True
End If
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式