280 likes | 525 Views
Tutorial 11 Arrays. Using a One-Dimensional Array Lesson A Objectives. After completing this lesson, you will be able to: Declare and initialize a one-dimensional array Assign data to a one-dimensional array Display the contents of a one-dimensional array
E N D
Using a One-Dimensional ArrayLesson A Objectives After completing this lesson, you will be able to: • Declare and initialize a one-dimensional array • Assign data to a one-dimensional array • Display the contents of a one-dimensional array • Access an element in a one-dimensional array • Search a one-dimensional array • Compute the average of a one-dimensional array’s contents • Find the highest entry in a one-dimensional array • Update the contents of a one-dimensional array • Sort a one-dimensional array
Arrays • A simple variable, also called a scalar variable, is one that is unrelated to any other variable in memory • An array is a group of variables that have the same name and data type and are related in some way • Although arrays in Visual Basic .NET can have as many as 60 dimensions, the most commonly used arrays are one-dimensional and two-dimensional • Programmers use arrays to store related data in the internal memory of the computer
One-Dimensional Arrays • A one-dimensional array is simply a row (or column) of variables • A two-dimensional array resembles a table in that it has rows and columns • Each element in an array is identified by a subscript, which Visual Basic .NET assigns to the variable when the array is created • You refer to an array element by the array’s name followed by the element’s subscript
One-Dimensional Array strState(2) strState(3) strState(4) strState(0) strState(1) strState(0) strState(1) strState(2) strState(3) strState(4)
Declaring an Array • Version 1 accessibilityarrayname(highestSubscript) As datatype • Version 2 accessibilityarrayname() As datatype = {initialValues} • These statements create and initialize the array variables in memory • accessibility is Dim, Public, or Private
Declaring an array • Dim strCitys(3) As String • Private intNumbers(5) As Integer • Private udtItems(4) As ItemStruc • Private strStates() As String = {“Hawaii”, “Alaska”, “Maine”} • Dim intScores() As Integer = {75, 9, 23, 6}
Storing Data in a One-Dimensional Array • You can use a variety of ways to enter data into an array strMonthArray(0) = “Jan” strMonthArray(1) = “Feb” strMonthArray(2) = “Mar” strMonthArray(3) = “Apr” strMonthArray(4) = “May” strMonthArray(5) = “June”
Assigning Values to Array Elements For intNum = 1 to 6 intSquareArray(intNum - 1) = intNum * intNum Next intNum For intNum = 0 to 10 sngNum(intNum) = Val(InputBox(“Enter number”)) Next intNum udtItems(0).sngPrice = udtItems(0).sngPrice * 1.1
One-Dimensional Array Dim intX As Integer Do While (intX <= 5 AndAlso Not EOF(1)) FileGet(1, udtItems(intX), intX + 1) intX += 1 Loop
Display the Contents of a One-Dimensional Array Dim strMonths() As String = {“JAN”, “FEB”, “MAR”, “APR”, “MAY”, “JUN”, “JUL”, “AUG”, “SEP”, “OCT”, “NOV”, “DEC”} Dim intX As Integer For intX = 0 To strMonths.Length - 1 Me.MonthListBox.Items.Add(strMonths(intX)) Next intX
Searching a One-Dimensional Array Dim intSales() As Integer = {45000, 35000, 25000, 60000, 23000} Dim intX As Integer ‘keeps track of subscripts Dim intCount As Integer ‘counter variable Dim intSearchFor As Integer ‘number to search for intSearchFor = Val(InputBox(“Enter sales to search for:”, _ “Sales”)) For intX = 0 To 4 If intSales(intX) > intSearchFor Then intCount += 1 End If Next intX MessageBox.Show(“Count: ” & intCount, “Sales”, _ MessageBoxButtons.OK, MessageBoxIcon.Information)
Calculating the Average Amount Stored in a One-Dimensional Numeric Array Declare variables Repeat for each score add array score to intTotal variable End repeat for intNum Calculate the average by dividing intTotal by number of scores Display the average
Calculating the Average Amount Stored in a One-Dimensional Numeric Array Dim intScores() As Integer = {98, 100, 56, 74, 35} Dim intX As Integer ‘keeps track of subscripts Dim intTotal As Integer ‘accumulator variable Dim sngAvg As Single ‘average score For intX = 0 To intScores.Length - 1 intTotal += intScores(intX) Next intX sngAvg = intTotal / intScores.Length MessageBox.Show(“Average: ” & sngAvg, “Average”, _ MessageBoxButtons.OK, MessageBoxIcon.Information)
Determining the Highest ValueStored in a One-Dimensional Array Declare variables Assign first array value (zero) to intHigh variable Initialize the intX variable to 1 (second subscript) Repeat while intX is less than the number of elements in the array If current array value > intHigh value then assign current array value to intHigh End If End repeat for intNum Display the highest value(stored in intHigh)
Updating the Values Stored in a One-Dimensional Array Declare variables Prompt user for the value to add Repeat for each price in the array add value to current array value display the contents of the current array element End repeat
Sorting the Data Stored in a One-Dimensional Array declare an Integer array named intNumbers declare an Integer variable named intX open the random access file named nums.data repeat while intX is less than or equal to 5 and it is not the end of the nums.data file read a number from the file and store it in the current array element display the contents of the current array element in a message box add 1 to the intX variable end repeat close the nums.data file sort the intNumbers array in ascending order using the Array.Sort method repeat for each element in the intNumbers array display the contents of the current array element in a message box end repeat
More on One-Dimensional ArraysLesson B Objectives After completing this lesson, you will be able to: • Create and manipulate parallel one-dimensional arrays • Create and manipulate a one-dimensional array of structures
Parallel Arrays • Arrays that are related by an element’s position (subscript) • Searching one array gives you the subscript for the other array Dim strId() As String = {"BX35”, “CR20", “FE15”, “KW10”, “MM67”} Dim intPrice() As Integer = {13, 10, 12, 24, 4} Dim intX As Integer, strSearchFor As String strSearchFor = UCase(IdTextBox.Text) ‘search the array Do While intX < strId.Length AndAlso strSearchFor <> strId(intX) intX += 1 Loop
An Array of Structures Declare an ItemStruc array named udtPriceList Declare variables intX and strSearchFor Assign IDs and prices to the udtPriceList array Assign the product ID entered in the IdTextBox control, converted to uppercase, to the strSearchFor variable Repeat while intX is less than the list length and the value of strSearchFor variable is not equal to the value stored in the current array element’s strId field Increment intX End repeat If the intX variable contains a number that is less than the lists length display the appropriate price from the intPrice field in the array Else display the message “Product ID is not valid” End if
Using a Two-Dimensional ArrayLesson C Objectives After completing this lesson, you will be able to: • Create and initialize a two-dimensional array • Store data in a two-dimensional array • Manipulate a two-dimensional array
Two-Dimensional Arrays • A two-dimensional array resembles a table in that the variables are in rows and columns strProducts(0, 0) strProducts(0, 2) strProducts(1, 2) strProducts(2, 1)
Multidimensional Array Properties • Length will tell you the total number of elements • intSales.Length will return 12 • Use GetLength(dimension) to get the size of a particular dimension • intSales.GetLength(0) will return 6 • intSales.GetLength(2) will return 2 For intRow = 0 To intSales.GetLength(0) - 1 For intCol = 0 To intSales.GetLength(1) - 1 intTotal = intTotal + intSales(intRow, intCol) Next intCol Next intRow