The code below answer the how do I count an array question, it was written in Visual Studio 2010 VBA but should run in most all version with only minor changes. It also contains some basic checks for wrong values and lower case entries.
You will also see that values for elements 99 and 100 were change to show code full functionality.
to dehirmet - You can set the lower limit to anything but 0 in version 2010 but this code also contains the work around.
To test code
Create a new windows form application
Drag 4 Labels from the tool bar with label1 on top then label2 below and so on.
Double click in a blank portion of the form to open the code window
copy code below and place between
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
and
End sub
Press F5 to run
Code:
'program to count the number of votes for A B and C
Dim votes_cast(100) As String
' you can not set the lower bounds of an array in VBA 2010 to anything but 0
' THIS CREATES AN ARRAY WITH 101 ELEMETS 0 TO 100
' WE WILL DEAL WITH ELEMENT 0 LATER
'initialise votes_cast array
votes_cast(1) = "B"
votes_cast(2) = "C"
votes_cast(3) = "C"
votes_cast(4) = "B"
votes_cast(5) = "B"
votes_cast(6) = "B"
votes_cast(7) = "C"
votes_cast(8) = "A"
votes_cast(9) = "A"
votes_cast(10) = "A"
votes_cast(11) = "A"
votes_cast(12) = "A"
votes_cast(13) = "A"
votes_cast(14) = "A"
votes_cast(15) = "B"
votes_cast(16) = "B"
votes_cast(17) = "C"
votes_cast(18) = "B"
votes_cast(19) = "A"
votes_cast(20) = "B"
votes_cast(21) = "C"
votes_cast(22) = "B"
votes_cast(23) = "A"
votes_cast(24) = "B"
votes_cast(25) = "A"
votes_cast(26) = "C"
votes_cast(27) = "C"
votes_cast(28) = "B"
votes_cast(29) = "B"
votes_cast(30) = "B"
votes_cast(31) = "B"
votes_cast(32) = "A"
votes_cast(33) = "A"
votes_cast(34) = "A"
votes_cast(35) = "C"
votes_cast(36) = "C"
votes_cast(37) = "B"
votes_cast(38) = "A"
votes_cast(39) = "B"
votes_cast(40) = "A"
votes_cast(41) = "B"
votes_cast(42) = "C"
votes_cast(43) = "B"
votes_cast(44) = "C"
votes_cast(45) = "A"
votes_cast(46) = "A"
votes_cast(47) = "A"
votes_cast(48) = "C"
votes_cast(49) = "C"
votes_cast(50) = "B"
votes_cast(51) = "B"
votes_cast(52) = "B"
votes_cast(53) = "C"
votes_cast(54) = "B"
votes_cast(55) = "C"
votes_cast(56) = "B"
votes_cast(57) = "C"
votes_cast(58) = "B"
votes_cast(59) = "C"
votes_cast(60) = "B"
votes_cast(61) = "C"
votes_cast(62) = "A"
votes_cast(63) = "A"
votes_cast(64) = "C"
votes_cast(65) = "B"
votes_cast(66) = "A"
votes_cast(67) = "B"
votes_cast(68) = "C"
votes_cast(69) = "C"
votes_cast(70) = "B"
votes_cast(71) = "B"
votes_cast(72) = "B"
votes_cast(73) = "C"
votes_cast(74) = "A"
votes_cast(75) = "A"
votes_cast(76) = "A"
votes_cast(77) = "A"
votes_cast(78) = "A"
votes_cast(79) = "A"
votes_cast(80) = "A"
votes_cast(81) = "B"
votes_cast(82) = "B"
votes_cast(83) = "C"
votes_cast(84) = "B"
votes_cast(85) = "A"
votes_cast(86) = "B"
votes_cast(87) = "C"
votes_cast(88) = "B"
votes_cast(89) = "A"
votes_cast(90) = "B"
votes_cast(91) = "A"
votes_cast(92) = "C"
votes_cast(93) = "C"
votes_cast(94) = "B"
votes_cast(95) = "B"
votes_cast(96) = "B"
votes_cast(97) = "B"
votes_cast(98) = "A"
votes_cast(99) = "a"
votes_cast(100) = "d"
Dim nAcount As Integer 'COUNTER FOR "A"
Dim nBcount As Integer 'COUNTER FOR "B"
Dim nCcount As Integer 'COUNTER FOR "C"
Dim nBadVote As Integer 'counts any vote that are not A,B,C
Dim temp As String 'used to hold value of array element after convertion to upper case.
'This ensures lower case votes are still counted (a good code thing)
For i = 0 To votes_cast.GetLength(0) - 1 ' .GetLenth(0) returns number of elements in dimension 0.
temp = UCase(votes_cast(i)) 'convert value in array to upper case and assign to temp
Select Case temp
Case "A"
nAcount = nAcount + 1 'if temp = A add 1 to counter
Case "B"
nBcount = nBcount + 1 'if temp = B add 1 to counter
Case "C"
nCcount = nCcount + 1 'if temp = C add 1 to counter
Case Else
If i > 0 Then ' This keeps nBadvote for counting array element 0 which is Null
nBadVote = nBadVote + 1 ' If Temp is not A,B,C add 1 to counter
End If
End Select
Next i
Label1.Text = " A votes = " + nAcount.ToString
Label2.Text = " B votes = " + nBcount.ToString
Label3.Text = " C votes = " + nCcount.ToString
Label4.Text = "Bad Votes = " + nBadVote.ToString