充值活动已开启,快来参与吧 关闭充值活动
当前位置: 高中信息技术 /
  • 1. 为分析数组a中各元素依次变化的情况,进行如下定义:

    变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。

    波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个,终点是峰顶后所有连续下降段中的最后1个。

    对称波峰:上升段与下降段个数相同的波峰称为对称波峰。

    下图为一组数据的变化段及波峰示意图。

    现要求统计数组a各元素依次变化过程中“对称波峰”的个数。小李依据上述描述设计如下VB程序。请回答下列问题:

    1. (1) 数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为
    2. (2) 请在划线处填入合适的代码。

      Const n = 20

      Dim a(1 To n) As Integer

      Private Sub Form_Load()

      '读取数据,并存储到数组a中,代码略

      End Sub

      Private Sub Command1_Click()

      Dim flag As Integer    '存储变化段的状态:1表示升,-1表示降,0表示平

      Dim count As Integer      '存储对称波峰段的个数

      Dim steps As Integer

      Dim i As Integer

      flag = 0: steps = 0: count = 0

      For i = To n

      If a(i) > a(i - 1) Then

      If IsSymPeak(flag, steps) Then count = count + 1

      If flag = 0 Or flag = -1 Then

      Else

      steps = steps + 1

      End If

      flag = 1

      ElseIf a(i) = a(i - 1) Then

      If IsSymPeak(flag, steps) Then count = count + 1

      steps = 0

      flag = 0

      Else

      steps = steps - 1

      flag = -1

      End If

      Next i

      If IsSymPeak(flag, steps) Then count = count + 1

      Text1.Text = Str(count)

      End Sub

      Function IsSymPeak(flag As Integer, steps As Integer) As Boolean

      If Then

      IsSymPeak = True

      Else

      IsSymPeak = False

      End If

      End Function