因为学习的需要,请求VB高手帮助小弟对以下程序进行一下逐一解释一下,谢谢!

(1) 输入N的值(0<n<10),计算下列表达式的值并在窗体上显示
s=1 ! –2! +3! -4!+……n!

解:Private Sub Command1_Click()
Dim i As Long, i1 As Long, n As Long, n1 As Long

i1 = Val(InputBox("输入一个数(0<n<10)"))
If i1 <= 0 Or i1 >= 10 Then
Print "输入数值范围错误!!!"
Exit Sub
End If
n = 0
For i = 1 To i1
n1 = 1
For i1 = 1 To i
n1 = n1 * i1
Next
If i Mod 2 = 0 Then
n = n - n1
Else
n = n + n1
End If
Next

Print n

End Sub

(2) 完成实现以下功能的程序
窗体上放置一个图片框pic1 ,当鼠标在图片框pic1中按下左键,可以在其中画出红色的鼠标轨迹线,直到鼠标按下右键停止绘图。

解:Dim H1 As Boolean, X1 As Single, Y1 As Single '全局变量

Private Sub Form_Load()
Pic1.BackColor = &HFFFFFF '背景颜色
Pic1.ForeColor = &HFF& '线条颜色
H1 = False
End Sub

Private Sub Form_Click()
Pic1.Cls '清除
End Sub

Private Sub Pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
H1 = True
X1 = X
Y1 = Y
End If
If Button = 2 Then H1 = False
End Sub

Private Sub Pic1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If H1 Then
Pic1.Line (X, Y)-Step(X1 - X, Y1 - Y)
X1 = X
Y1 = Y
End If
End Sub

(3)完成实现以下功能的程序
将“c:\file1.dat”文件中的内容读出,去掉字符间的所有空格,然后把结果保存在“c:\file2.dat”文件中。
解:Private Sub Command1_Click()
Dim h1 As Integer, h2 As Integer, s1 As String

h1 = FreeFile '空闲的文件句柄
h2 = h1 + 1

Open "c:\file1.dat" For Input As #h1
Open "c:\file2.dat" For Output As #h2

Do While Not EOF(h1)
Line Input #h1, s1
Print #h2, Replace(s1, " ", "")
Loop
Close #h1
Close #h2
End Sub

我翻译的比较生硬,没有把整个意图给你作解释,是按你说的进行逐行一步一步解释的,不过对你理解程序一定会有帮助.

(1) 输入N的值(0<n<10),计算下列表达式的值并在窗体上显示
s=1 ! –2! +3! -4!+……n!

解:Private Sub Command1_Click()
'子程序 Command1被按下(演示这段程序,除了将代码复制到VB代码输入窗口外,还需要在界面上生成一个command按钮)
Dim i As Long, i1 As Long, n As Long, n1 As Long
'定义变量 i i1 n n1 都是长整型

i1 = Val(InputBox("输入一个数(0<n<10)"))
'i1这个变量的值等于VAL(将输入的字符转化为数字类型)的用户自已输入的inputbox里的一个数字符号
If i1 <= 0 Or i1 >= 10 Then
'假如 i1 不在0和10之内,那么
Print "输入数值范围错误!!!"
'屏幕打印出"输入数值范围错误"
Exit Sub
'完成上面后退出这个子程序,不再执行下面的其他子程序代码
End If
'假如的条件到此结束
n = 0
'定义n的值为0
For i = 1 To i1
'开始一组循环 条件是 i从1到i1的数值
n1 = 1
'定义n1这个变量等于1
For i1 = 1 To i
'开始一组循环里面的再一组循环 条件是 i1从1到i的数值
n1 = n1 * i1
'n1变量的值=n1自身去乘以i1变量
Next
'继续for i1=这组循环
If i Mod 2 = 0 Then
'假如 i变量除以2的余数等于0 那么
n = n - n1
'n变量=n变量自身减去n1变量
Else
'否则
n = n + n1
'n变量=n变量自身加上n1变量
End If
'假如的程序段结束
Next
'继续for i=这组循环
Print n
'屏幕上打印了 n变量的值
End Sub
'结束子程序

(2) 完成实现以下功能的程序
窗体上放置一个图片框pic1 ,当鼠标在图片框pic1中按下左键,可以在其中画出红色的鼠标轨迹线,直到鼠标按下右键停止绘图。

解:Dim H1 As Boolean, X1 As Single, Y1 As Single '全局变量
'定义变量H1是布尔型 True 或 False变量,X1和Y1为浮点型变量

Private Sub Form_Load()
'窗口被执行时自动调用的子程序form_load
Pic1.BackColor = &HFFFFFF '背景颜色
'定义pic1图片框的背景色为&HFFFFFF
Pic1.ForeColor = &HFF& '线条颜色
'定义pic1图片框的前景色为&HFF&
H1 = False
'定义变量H1为假状态
End Sub
'Form_Load()子程序结束

Private Sub Form_Click()
'窗口任意位置变鼠击点击时执行的子程序开始form_click
Pic1.Cls '清除
'清除pic1图片框的内容
End Sub
'form_click子程序结束

Private Sub Pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'pic1图片框被鼠标按下时发生的子程序开始(其中,按钮是整型,参数shift是整型,X座标和Y座标是浮点型
If Button = 1 Then
'假如 按钮状态是1 那么
H1 = True
'变量H1等于真状态
X1 = X
'X1变量等于鼠标在PIC1图片框上的座标X位置
Y1 = Y
'Y1变量等于鼠标在PIC1图片框上的座标Y位置
End If
'假如结束
If Button = 2 Then H1 = False
'假如鼠标按键状态是2 那么 H1变量等于假状态
End Sub
'form_click子程序结束

Private Sub Pic1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'pic1图片框里面发生鼠标移动时发生的子程序开始(其中,按钮是整型,参数shift是整型,X座标和Y座标是浮点型
If H1 Then
'如果h1变量等于真状态
Pic1.Line (X, Y)-Step(X1 - X, Y1 - Y)
'PIC1图片框里面开始画线段 起始是座标X,Y这个点,线段结束是X1变量减去x,Y1变量减去Y.
X1 = X
'X1变量等于鼠标在PIC1图片框上的座标X位置
Y1 = Y
'Y1变量等于鼠标在PIC1图片框上的座标Y位置
End If
'假如结束
End Sub
'Pic1_MouseMove子程结束

(3)完成实现以下功能的程序
将“c:\file1.dat”文件中的内容读出,去掉字符间的所有空格,然后把结果保存在“c:\file2.dat”文件中。
解:Private Sub Command1_Click()
'子程序 Command1被按下(演示这段程序,除了将代码复制到VB代码输入窗口外,还需要在界面上生成一个command按钮)
Dim h1 As Integer, h2 As Integer, s1 As String
'定义h1 h2 为整型变量,s1为字符型变量
h1 = FreeFile '空闲的文件句柄
h2 = h1 + 1
'h2变量为h1变量加上1
Open "c:\file1.dat" For Input As #h1
'打开C盘的file1.dat文件 别名是#h1
Open "c:\file2.dat" For Output As #h2
'打开C盘的file2.dat文件 别名是#h2

Do While Not EOF(h1)
'进行do while条件循环,条件是h1这个别名下的文件字符内容没有到结尾
Line Input #h1, s1
'读一行h1这个别名下的文件(实际就是file1.dat),并将读的这一行内容拿给变量S1
Print #h2, Replace(s1, " ", "")
'写一行h2这个别名下的文件(实际就是file2.dat),写的这一行内容来源是被替换了" "空格的s1变量(也就是读的这一行内容不能有空格,被replace替换成""空了)
Loop
'继续循环,直到条件不满足为止
Close #h1
'关于h1别名下的文件
Close #h2
'关于h2别名下的文件
End Sub
'结束子程序
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜