VB实习第六章

更新时间:2023-12-31 08:36:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实习内容: 例题6-1

求组合数CMN=n!/m!(n-m)!的值,设m=6,n=10。 运行结果为:

例题6-2

一个整型数组有10个元素,将第一个元素与最后一个元素对调,第二个与倒数第二个对调……..,输出对调前后数组各元素的值。

例题6-3

编写求两个整数的最大公约数过程,在主程序中调用该过程求两个数的最大公约数,并根据最大公约数求最小公倍数。 运行结果为:

例题6-4

分别用传地址方式和传值方式编写交换两个整数的过程并调用。 运行结果为:

例题6-5

编写求一组整数平均值的过程,并在主程序中调用。

例题6-6

编写能获得一组整数的平均值、最大值、和最小值的过程并调用。

例题6-7

求组合数CMN=n!/m!(n-m)!的值,设m=6,n=10。

例题6-8

尝试验证窗体级变量的作用范围

例题6-9

变量作用范围综合示例。

例题6-10

编程对键盘上输入的任意数排序。

例题6-11

判断一个整数是否是回文数,所谓回文数是这样的数,将这个数从左到右读和从右向左读的值相等。如121就是回文数,345就不是回文数。

例题6-12

设计一个数值转换函数,能够将十进制整数转换成十六进制以内的任意进制数。

例题6-13

利用递归调用计算n!

例题6-14

用递归求两个数的最大公约数。

习题6-1

自定义一个与VB内部函数Abs功能完全相同的函数过程MyAbs,要求函数过程中不能调用VB内部函数Abs。 事件代码为:

Function myabs(x As Single, y As Single) As Single If x >= 0 Then y = x Else

y = -x End If

End Function

Private Sub Command1_Click() Dim x!, y!

x = InputBox(\请输入\Call myabs(x, y)

Print x & \的绝对值为:\End Sub

运行结果为:

习题6-2

编写一个求4个数中最大值Max和最小值Min的过程,并在主程序中调用。 事件代码为:

Sub qzz(x() As String, max As Single, min As Single) Dim i%, m%, n%

m = LBound(x): n = UBound(x) max = x(m): min = x(m) For i = m + 1 To n

If x(i) > max Then max = x(i) If x(i) < min Then min = x(i) Next i End Sub

Private Sub Command1_Click()

Dim a() As String, max As Single, min As Single a = Split(Text1.Text, \Call qzz(a, max, min)

Label2.Caption = \最大值为:\最小值为:\End Sub

运行结果为:

习题6-4

编写函数过程Gdc求两个数的最大公约数。调用此函数试求1260、198、72三个数的最大公约数。 事件代码为:

Sub Gdc(m%, n%, gys%)

Dim r% Do

r = m Mod n If r <> 0 Then m=n n = r End If Loop Until r = 0 gys = n End Sub

Private Sub Command1_Click() Dim m%, n%, gys% m = 1260: n = 198 Call Gdc(m, n, gys) m = gys: n = 72

Print \、198、72的最大公约数为:\End Sub

运行结果为:

习题6-5

编写产生随机整数过程,输出n个指定范围的随机整数,并在主程序中调用。 事件代码为:

Sub sjs(a() As Integer, min As Integer, max As Integer, n As Integer) Dim m% m = 1

ReDim a(m To n) As Integer

m = LBound(a): n = UBound(a) For i = m To n

a(i) = Int(Rnd * (max - min + 1) + min) Print a(i); Next i End Sub

Private Sub Command1_Click()

Dim a%(), min%, max As Integer, x As Integer min = InputBox(\请输入范围最小值\max = InputBox(\请输入范围最大值\x = InputBox(\请输入个数n\

Call sjs(a(), min, max, x) End Sub

运行结果为:

习题6-7

编写判断一个整数是否为素数的过程,并调用该过程输出100~200之间所有的素数。 事件代码为:

Sub su(m As Integer, p As Boolean) Dim i% p = True

For i = 2 To m - 1

If m / i = m \\ i Then p = False Exit For End If Next i End Sub

Private Sub Command1_Click() Dim i As Integer, p As Boolean For i = 100 To 200 Call su(i, p) If p = True Then Print i; n = n + 1

If n Mod 6 = 0 Then Print End If End If Next i End Sub

总结

1. 经过前面的学习对于VB有了一定的认识,不像刚学的时候什么都不懂,也有了点经验,

可以自己查找错误,做题速度也有所提升。做某些题的时候,有了点思路,其实大都是照搬前面学的内容。

2. 学习VB也可以提升英语的打字速度,打汉字跟英语是不同的,习惯了打汉字突然的打

英语倒不熟练了,学习VB不仅学会了编程的一些知识,还熟悉了英文的输入。

3. 虽然VB课将要结课了,但是感觉学到的有关编程的还很少,这也只是基础知识,想要

更好的学习编程还得以后自己努力,以后还得需要老师的帮助哦。

4. 其实VB也是门有趣的课程,编程出现错误的时候很恼火,很浮躁,尤其是一次一次的

报错的时候,不过当成功的那一刻,心情非常放松,非常高兴佩服自己。 5. 有点遗憾的是课程比较紧,对于递归方面的内容还不是很懂,不过递归很有意思很简单,

以后要好好学学。

代码不正确,因为没有注意到split的数据类型为动态数组,只是记着字符型 因为将变量也改为了字符型,所以不能正确计算出大于10的数组的最值

本文来源:https://www.bwwdw.com/article/mcjx.html

Top