操作题 1.  在考生文件夹下有一个工程文件zcsj1.vbp,在其窗体中有一个实心圆。当程序运行时,用鼠标左键单击窗体任何空白位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。
    【要求】请去掉程序中的注释符,把程序中的?改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后将修改后的文件按原文件名存盘。
【正确答案】[操作步骤]
   步骤1:打开本题工程文件。
   步骤2:分析并编写程序代码。
   程序提供代码
   Dim stepy As Integer'纵向移动增量
   Dim stepx As Integer'横向移动增量
   Const LEFT_BUTTON = 1
   Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   Dim x0 As Integer, y0 As Integer, a As Single, radius As_Integer
   radius = Shape1.Width / 2  '圆的半径
   If Button = LEFT_BUTTON Then
   x0 = Shape1.Left + radius'圆心的x坐标
   y0 = Shape1.Top + radius'圆心的y坐标
   If x = x0 Then
   stepy = Sgn(y - y0) * 50
   'stepx = ?
   Else
   a = (y - y0) / (x - x0)'斜率
   stepx = Sgn(x - x0) * 50
   '? = a * stepx
   If Abs(stepy) > Abs(stepx) Then
   stepy = Sgn(y - y0) * 50
   stepx = stepy / a
   End If
   End If
   '? = True
   Else
   '? = False
   End If
   End Sub
   Private Sub Timer1_Timer()
   'Shape1.Move Shape1.Left + stepx, Shape1.Top + ?
   End Sub
   程序结束
   参考答案
   第1个?处填入:Sgn(x - x0) * 50
   第2个?处填入:stepy
   第3个?处填入:Timer1.Enabled
   第4个?处填入:Timer1.Enabled
   第5个?处填入:stepy
   步骤3:调试并运行程序,关闭程序后按题目要求存盘。
   
【答案解析】[考点] 本题考点有:形状控件的Width、Left和Top属性,形状控件的Move方法,Abs()函数,sgn()函数以及坐标变量。
   形状(Shape)控件可以在窗体、框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形,并且可以设置形状的样式、颜色、填充样式、边框颜色和边框样式等。
   通过鼠标左键单击位置的坐标及圆心的坐标确定一条直线,并沿着这条直线移动,通过计算这条直线的斜率,得知水平位移和竖直位移,再通过形状控件的Move方法、Left、Top属性实现形状控件位置的移动。
   sgn(x)函数返回x的正负号,如果x为正数,返回1;如果为负数,返回-1;如果为0,则返回0。
   语句比较复杂,要耐心地读懂程序,然后再做就很简单了。