资源描述:
《补充题完善程序注释》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、求所有二、三、四位的Armstrong数(一个n位的正整数,其各位数的n次方之和等于该数),例如153=13+53+33,1634=14+64+34+44知识点:参见理论书4.6节:字符函数,转换函数'完善程序第1题Private Sub Command1_Click() Dim i As Integer For i = 100 To 9999'从100到9999如果armstrong(i)=True即i是armstrong数就输出 If armstrong(i) Then
2、 Print i Next iEnd Sub'**************************************'armstrong( )是判定函数,如果x是armstrong数,输出函数值armstrong = TruePrivate Function armstrong(x As Integer) As Boolean'输出函数值armstrong应该为逻辑值 Dim sum As Integer, n As Integer, s As String, i As Integer
3、 armstrong = False'开始设定函数值armstrong为假 n = Len(CStr(x))'取x的数字个数赋给n For i = 1 To n'取x的每一位数字,求每个数字的n次方并相加 s = Val(Mid(CStr(x), i, 1))'取x的第i位数字 sum = sum + s ^ n'将x的第i位数字的n次方加到和s上 Next i If sum = x Then armstrong = True'若和s等于x
4、本身,则取函数值为True,'即判x是armstrong数End Function2、本程序的功能是查找数组中有无鞍点(所谓鞍点,是指在本行最大,在本列最小的元素),在一个数组中可能存在,也可能不存在这样的元素,程序运行界面如下图所示;知识点:For循环完全执行完后,循环变量为:i=末值+步长For循环没有执行完而中途退出,循环变量为:Exit For退出语句之前的值知识点: 随机数产生公式,理论书P72:Int((upperbound-lowerbound+1)*Rnd)+1'完善程序第2题 Option
5、Explicit Private Sub Form_Click() Dim a(4, 4) As Integer, k As Integer, flag As Boolean Dim i As Integer, j As Integer, Max As Integer, Col As Integer'**************************************'下面两层i,j循环产生 随机数作为a(4, 4)的元素,并按行和列在窗口输出 Randomize'初始化随机数
6、生成器,见理论书P72 For i = 1 To 4'数组的1到4行 For j = 1 To 4'每行的1到4列 a(i, j) = Int(Rnd * 100) + 100'随机生成100到199之间的随机数作为a(i, j) Print a(i, j);'每行的的元素采用分号紧凑格式,排成一行 Next j Print'一行元素输出完后用一个print语句换行 Next i'**************
7、************************'用一个大的i循环在数组每行中搜寻鞍点,如果有鞍点就输出说明信息 flag = False'flag为鞍点存在标识,一开始设为假 For i = 1 To 4'用一个大的i循环在数组1到4行中搜寻鞍点'*******************'第1步:在每行中找出最大元素,并记录,将其值赋给Max,它的列号赋给ColMax = a(i, 1): Col = 1'最大值先取i行第1元素,最大值所在列记号先取1 For j = 2 To
8、4 If Max < a(i, j) Then'Max与该i行后面元素逐个比较,始终将最大的元素赋给Max Max = a(i, j)'始终将最大的元素赋给Max Col = j'Col记录最大值所在列号 End If Next j'*******************'第2步