執行畫面:
主程式:
Module ModuleWS5000 Sub Main(Argv() As String) Dim NumArray As ArrayList = Nothing Dim Tasks As ClassTasks = New ClassTasks Dim RetVal() As Integer = Nothing NumArray = Tasks.NumArray If Argv.Count > 0 Then Console.WriteLine(Argv(0)) Else NumArray.Add(3) NumArray.Add(8) NumArray.Add(6) ' NumArray.Add(13) NumArray.Add(4) NumArray.Add(15) NumArray.Add(9) RetVal = Tasks.FindMax Console.WriteLine("最大值={0}{1}位置={2}", RetVal(0), vbTab, RetVal(1)) RetVal = Tasks.FindMin Console.WriteLine("最小值={0}{1}位置={2}", RetVal(0), vbTab, RetVal(1)) Console.WriteLine("總和={0}{1}平均值={2:0.00}", Tasks.FindSum, vbTab & vbTab, Tasks.FindMean) Tasks.Print() RetVal = Tasks.FindMeadian Console.WriteLine("中間值={0}{1}位置={2}", RetVal(0), vbTab, RetVal(1)) End If Console.ReadKey() End Sub End Module
類別函數:
Public Class ClassTasks Public Sub New() Me.NumArray = New ArrayList() End Sub Public Property NumArray As ArrayList Public Function FindMax() As Integer() Dim RetVal() As Integer = {-1, -1} For i = 0 To Me.NumArray.Count - 1 If RetVal(0) < Me.NumArray.Item(i) Then RetVal(0) = Me.NumArray.Item(i) RetVal(1) = i End If Next Return RetVal End Function Public Function FindMin() As Integer() Dim RetVal() As Integer = {-1, -1} For i = 0 To Me.NumArray.Count - 1 If RetVal(0) > Me.NumArray.Item(i) Or RetVal(0) = -1 Then RetVal(0) = Me.NumArray.Item(i) RetVal(1) = i End If Next Return RetVal End Function Public Function FindSum() As Integer Dim Sum As Double = 0.0 For i = 0 To Me.NumArray.Count - 1 Sum = Sum + Me.NumArray(i) Next Return Sum End Function Public Function FindMean() As Double Dim Mean As Double = 0.0 If Me.NumArray.Count > 0 Then Mean = Me.FindSum / Me.NumArray.Count End If Return Mean End Function Public Function FindMeadian() As Integer() Dim RetVal() As Integer = {-1, -1} Dim Mean As Double = 0.0 Dim Diff As Double = 999.0 If Me.NumArray.Count = 0 Then Return RetVal End If Mean = Me.FindMean For i = 0 To Me.NumArray.Count - 1 If Diff > Math.Abs(Mean - Me.NumArray.Item(i)) Or RetVal(0) = -1 Then Diff = Math.Abs(Mean - Me.NumArray.Item(i)) RetVal(0) = Me.NumArray.Item(i) RetVal(1) = i End If Next Return RetVal End Function Public Sub Print() Dim SortedNumArray As ArrayList = New ArrayList(Me.NumArray.ToArray) SortedNumArray.Sort() For i = 0 To SortedNumArray.Count - 1 Console.Write("{0}{1}", SortedNumArray.Item(i), vbTab) Next Console.WriteLine() End Sub End Class