Private Function Func(a() As Integer, length As Integer) As Single Dim sum As Long, average As Single, sumA As Single Dim i As Integer
For i = 0 To length - 1 sum = sum + a(i) Next
average = CSng(sum) / length For i = 0 To (length - 1)
sumA = sumA + (a(i) - average) ^ 2 Next
Func = Sqr(sumA / (length - 1)) End Function
6.单击窗体时,用Line方法在窗体上随机产生20条长度、颜色、宽度各异的直线(左图)。双击窗体时,用Pset方法在窗体上画200个随机彩色点,点的大小在3~6个之间变化(右图)。
(1)单击窗体时产生20条随机直线,代码如下: Private Sub Form_Load()
Me.Scale (-100, 100)-(100, -100) End Sub
Private Sub Form_Click() Cls
Dim x1 As Single, y1 As Single Dim x2 As Single, y2 As Single
Dim i% Randomize
For i = 1 To 20
DrawWidth = 1 + 10 * Rnd x1 = (-100) * Rnd y1 = 200 * Rnd - 100 x2 = 100 * Rnd
y2 = 200 * Rnd - 100
Form1.Line (x1, y1)-(x2, y2), RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Next i End Sub
(2)双击窗体时产生200个随机点,代码如下: Private Sub Form1_DblClick() Cls
Dim i%,x!,y! Randomize
For i = 1 To 200
DrawWidth = 3 + 30 * Rnd x = Form1.ScaleWidth * Rnd y = Form1.ScaleHeight * Rnd
Form1.Pset(x,y), RGB(255 * Rnd,255 * Rnd,255 * Rnd) Next i End Sub
7. 设计一个类似于Windows附件中的计算器,完成以下要求:①运行程序并分析代码,找出存在的问题并设法修改;②将其扩充成为Windows附件中的标准型计算器。
〖设计步骤〗
⑴设计程序界面及控件属性。如图所示,在窗体中添加一个文本框,将其Text属性设置为空,Enabled属性设置为False。添加包含11个按扭的命令按扭数组Command1(0)~Command1(10),将它们的Caption属性分别改为“1”、“2”…“9”、“0”和“.”。添加一个Caption属性为“=”的按扭Command2。添加包含2个按扭的命令按扭数组Command3(0)~Command3(1),将它们的Caption属性分别改为“+”和“-”。 添加一个Caption属性分别改为“清除”的按扭Command4。
⑵在代码窗口输入如下代码
Option Explicit
Dim a As Single, b As Single, c As Integer Private Sub Command1_Click(Index As Integer) Text1.Text = Text1.Text + Command1(Index).Caption End Sub
Private Sub Command2_Click() b = Text1.Text Select Case index Case 0
a = a + b Case 1
a = a - b End Select
Text1.Text = a End Sub
标准计算器:
答:(1)在原有的基础上,添加命令按扭如图所示:
2)程序代码如下: Dim n, c, m As Single Dim a As String
Private Sub Command1_Click(Index As Integer)
Text1.Text = Text1.Text & Index '0到9的控件数组
End Sub
Private Sub Command2_Click()
If Text1.Text = \小数点 Text1.Text = \ Else
Text1.Text = Text1.Text & \ End If End Sub
Private Sub Command3_Click() n = Val(Text1.Text) Select Case a Case \ c = m / n Case \ c = m * n Case \ c = m + n Case \
c = m - n ' End Select
Text1.Text = c
If Abs(c) < 1 Then If c < 0 Then
Text1.Text = -Text1.Text
Text1.Text = \
Else: If c > 0 Then Text1.Text = \ End If End If End Sub
Private Sub Command4_Click()
s = Len(Text1.Text) 'backspace Text1.Text = Left(Text1.Text, s - 1) End Sub
Private Sub Command5_Click() Text1.Text = \End Sub
Private Sub Command6_Click() m = Val(Text1.Text)
a = \Text1.Text = \End Sub
Private Sub Command7_Click() m = Val(Text1.Text)
a = \Text1.Text = \End Sub
Private Sub Command8_Click()
等号 加号 减号 m = Val(Text1.Text)
a = \乘号 Text1.Text = \End Sub
Private Sub Command9_Click() m = Val(Text1.Text) a = \
Text1.Text = \除号 End Sub
Private Sub Command10_Click()
Label1.Caption = \End Sub
Private Sub Command11_Click()
Text1.Text = Label1.Caption 'MR End Sub
Private Sub Command12_Click()
Label1.Caption = Text1.Text 'MS End Sub
Private Sub Command13_Click()
Label1.Caption = Val(Label1.Caption) + Val(Text1.Text) 'M+ End Sub
Private Sub Command14_Click()
Text1.Text = Sqr(Text1.Text) '开方 End Sub
Private Sub Command15_Click()
Text1.Text = Text1.Text ^ 2 '平方 End Sub
Private Sub Command16_Click()
Text1.Text = 1 / Val(Text1.Text) '1/x If Abs(Text1.Text) < 1 Then If Text1.Text < 0 Then Text1.Text = -Text1.Text
Text1.Text = \
Else: If Text1.Text > 0 Then Text1.Text = \ End If End If End Sub
Private Sub Command17_Click()
Text1.Text = Val(Text1.Text) * 0.01 '百分号 If Abs(Text1.Text) < 1 Then