收藏 分销(赏)

数字处理程序.doc

上传人:xrp****65 文档编号:9433375 上传时间:2025-03-26 格式:DOC 页数:8 大小:104KB
下载 相关 举报
数字处理程序.doc_第1页
第1页 / 共8页
数字处理程序.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
8. 验证下列命题:设n是一个s1是n的各位数字之和,s2是2n的各位数字之和。若s1=s2,则n是9的倍数。根据图2和程序填写对象的相关属性,"X"代表该对象无属性。 对象 名称(Name) 标题(Caption) 正文(Text) 窗体 Frm1 (验证命题) X 标签 LblInput (输入一个两位数) X 文本框 TxtInput X 空 判断按钮 (CmdVerify) 验证 X 退出按钮 CmdExit 退出 X Private Sub CmdVerify_Click() Dim n As Integer,s1 As Integer,sa As Integer n=Val__(TxtInput_) s1=Sm(n) s2=Sm(2*n) If ___(s1=s2 and n Mod 9=0)___Then MsgBox "该命题成立" Else MsgBox "该命题不成立" End If TxtInput.Text="" TxtInput.SetFocus End Sub Private Sub CmdExit_Click() Unload Me End Sub   Private Function Sm(___(ByVal n As Integer)___) As Integer Dim sm1 as integer sm1=0 Do While n<>0 sm1=sm1+n Mod 10 ___(n=n\10)___ Loop Sm=sm1 End Function 8. 下面程序的功能是验证回文数猜想。任取一自然数,将其倒过来,并将这两个数相加,然后把这个和数倒过来,与原来的和数相加……重复这个过程有限次,必将得到一个回文数。 所谓回文数指左右数字完全对称的自然数,例如,121,12321,898,111均是回文数。根据猜想,假如取一自然数68’68+86=154’154+451=605’605+506=1111,经过三步运算就得到回文数1111。 Option Explicit Private Sub Form_Click() Dim S As Long,D As Long,Sum As Long Dim Flg As Boolean S=InputBox("输入一个正整数") Do D=Fun(S) Sum =S+D Print Sum;"=";S;"+";D Call Comp(Sum,Flg) S=___(Sum)___ Loop Until Flg Print Sum;"是回文数" End Sub   Private Function Fun(N As Long)As Long Dim Char As String,J As Long Dim I As Integer,Slen As Integer Char=Ltrim(Str(N)) ___(Slen=Len(Char))___ J=1 For I=1 To Slen Fun=Fun+Val(Mid(Char,I,1))*J ___(J=J*10或J=10^i)___ Next I End Function Private Sub Comp(N As Long,F As Boolean) Dim Ch As String,S As Integer,I As Integer S=Len(Ltrim(Str(N))) F=False Ch=Ltrim(Str(N)) For I=1 To___(S)___ If Mid(Ch,I,1)<>Mid(CH,S+1-I,1)Then Exit Sub Next I ___(F=True)___ End Sub 9.下面程序的功能是从键盘上输入一个不超过4位的十进制正整数,先把该十进数的每一位数字转换位一个4位二进制数,再把得到的二进制数依次合并成为一个16位的二进制数。例如输入十进制数359,会得到二进制数0000001101011001。 Private Sub Form_Click() Dim num As Integer, s As String, M As Integer Dim i As Integer, j As Integer, n As Integer num = InputBox("输入一个长度不超过4位的十进制正整数:", , 1) ___M=num__ Do While num>0 j=j + 1 n=num Mod 10 s=cover(n) & s ___num=num\10__ Loop For i=1 To 4-j s="0000" & s Next i Text1.Text="十进制数"&CStr(M)&"的转换结果是:" & s End Sub Private Function cover(ByVal n As Integer)As String Dim i As Integer, s As String, k As Integer Do Until n<1 ___k=n Mod 2__ s=CStr(k) & s n=n\2 Loop If Len(s)< 4 Then s="0000" & S cover=__right(s,4)__ Else cover=s End If End Function 7.下面程序的功能是将以“12;3;15”形式输入的字符串分解为数字12、3、15,分别赋给3个数组元素,并对其进行简单运算(图2为本程序执行画面)。 Private Sub Command1_Click()  Dim a(3) As Integer, i As Integer, n As Integer  Dim s As String  s = Text1.Text  For i = 1 To 2    n = InStr(s, ";")    a(i) = Left(s, n - 1)    s = Mid(s, n + 1, Len(s) - n)  Next i  A(3)= Val( s )  Text2.Text = a(1) * a(2) + a(3) End Sub 图2 8.本程序是找零巧数。所谓零巧数是具有下述特性的四位正整数:其百位数为0,如果去掉0,得到一个三位正整数,而该正整数乘以9,等于原数。例如2025=225×9,所以2025是零巧数(如图3所示)。 图3 Private Function Change(s As String) As String Dim p As String, i As Integer For i = 1 To Len(s)  If i <> 2 Then '是否为左边第二位数    p = p + Mid(s, i, 1) '将每位字符串连接  End If Next i Change = p End Function Private Sub Command1_Click()  Dim i As Integer, s As String  For i = 1000 To 9999 '在四位数之间查找    s = CStr(i) '将数值转变成字符串    If Mid(s, 2, 1) = "0" Then '取百位数,并判断是否为"0"     If Val(Change(s)) * 9 = i Then '去掉百位数后的数乘9后是否等于原来的数       List1.AddItem CStr(i)+ "=" +Change(s)+ "*9" '连接成字符串后,添加到列表框内     End If    End If  Next i End Sub 9.本程序是把给定的二进制整数转换为八进制整数。 Private Sub Command1_Click()  Dim a As String, b As String, c As String  a = InputBox("请输入一个二进制数", "输入框")  L = 3 -( Len(a))Mod 3  a = String(L, "0") & a  n = Len(a)/ 3  For m = 1 To n    b = Mid(a, 3 * m - 2, 3)    c = c + zh(b)  Next m  Text1.Text = c End Sub Private Function zh(s As String) As String  Dim i As Integer, n As Integer, p As Integer  p = 1  For i = 2 To 0 Step -1    n = n * 2 + Val(Mid(s, p, 1))    p = p + 1  Next i  zh = Str(n) End Function 10.找出由两个不同数字组成的平方数,并将结果按图4中的格式显示在列表框List1中。 Option Explicit Private Sub Command1_Click()  Dim I As Long, N As Long  For I = 11 To 300  N = I * I    If Verify(N) Then    List1.AddItem Str(I*I)+ "="+ Str(I)+ "*" + Str(I)    End If  Next I End Sub Private Function Verify(N As Long) As Boolean  Dim A(0 To 9) As Integer, I As Integer, J As Integcr  Do While N <> 0   A(N Mod 10)= 1    N = N \ 10  Loop  For I = 0 To 9    Js = Js + A(I)  Next I  If Js = 2 Then Verify = True End Function 图4 2.运行下面的程序,当单击窗体时,文本框Text1中的内容是 (2) ,文本框Text2中的内容是 (3) 。 Private Sub Form_Click()  Dim St As String  Dim St1 As String, St2 As String  St = "ASFRSDCFRSKX"  Call Change_String(St, St1, St2)  Text1.Text = St1  Text2.Text = St2 End Sub Private Sub Change_String(S As String, St1 As String, St2 As String)  Dim tem As String, i As Integer  For i = 1 To Len(S)   tem = Mid(S, i, 1)   If tem = "S" Then    St2 = St2 & "at"   ElseIf tem = "R" Then    St1 = St1 & "T"    Exit For   Else   St1 = St1 & tem   St2 = St2 & tem   End If  Next i End Sub (2)AFT (3)AatF 分析:Mid(x,n1,n2)从x字符串左边第n1个位置开始向右起取n2个字符。过程Change_String的功能是,将字符串St中的“S” 置换为“at”,“R”置换为“T”,并退出For循环。 6.运行下面程序,单击命令按钮Command1,则在窗体上显示的第一行内容是 (13) ,第二行内容是 (14) ,文本框Text1中显示的内容是 (15) 。 Private Sub Command1_Click()  Dim S As String  S = "LAUSIV"  Text1.Text = Display(S, Len(S)) End Sub Private Function Display(S As String, L As Integer) As String  If L > 1 Then Display = Display(S, L - 1)  S = Left(S, L - 1) & Right(S, 1) & Mid(S, L, Len(S) - L)  Display = S  Print Display End Function S L 打印 层数 LAUSIV 6 一 LAUSIV 5 二 LAUSIV 4 三 LAUSIV 3 四 LAUSIV 2 五 LAUSIV 1 Left(S, 0) & Right(S, 1) & Mid(S, 1, 5) VLAUSI 六 VLAUSI 2 Left(S, 1) & Right(S, 1) & Mid(S, 1, 4) VILAUS 五 VILAUS 3 Left(S, 2) & Right(S, 1) & Mid(S, 1, 3) VISLAU 四 VISLAU 4 Left(S, 3) & Right(S, 1) & Mid(S, 1, 2) VISULA 三 VISULA 5 Left(S, 4) & Right(S, 1) & Mid(S, 1, 1) VISUAL 二 VISUAL 6 Left(S, 5) & Right(S, 1) & Mid(S, 1, 0) VISUAL 一 (13)VLAUSI (14)VILAUS (15)VISUAL 分析:过程Display是个递归过程。Left(x,n)从x字符串左边起取n个字符,Right(x,n)从x字符串右边起取n个字符,Mid(x,n1,n1)从x字符串左边第n1个位置开始向右起取以个字符,Len(x)求x字符串的长度(字符个数)。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服