260 likes | 506 Views
Arrays. Chapter 8. Overview. General discussion Variable arrays Control arrays Multi-dimensional variable arrays Two-dimensional Three-dimensional Parallel arrays Dynamic arrays. Arrays. Often a set of objects or variables of the same type are used to hold related data
E N D
Arrays Chapter 8
Overview • General discussion • Variable arrays • Control arrays • Multi-dimensional variable arrays • Two-dimensional • Three-dimensional • Parallel arrays • Dynamic arrays
Arrays • Often a set of objects or variables of the same type are used to hold related data • Prices of food items at a fast food restaurant • Scores on programming assignments • In the GPA calculator, rather than having five textboxes with different names to enter the grades, we might better describe the situation as an array of elements • Many data containers • One name
Variable Arrays • A variable like Stuff defines a data object into which a single quantity can be placed • A variable like Product defines a data object into which an array of information can be placed Stuff 3 2 1 0 Product
Declaring Variable Arrays • An array is declared using the following syntax: Dim ArrayName(LowerBound To UpperBound) as VariableType • The LowerBound of the array is the lowest index in the array, while the UpperBound is the highest index in the array
intArray Variable Array – Example (1) • Arrays are useful for when there are many instances of similar data • Instead of ten integer variables holding ten values, a single array can handle all ten intd intc inte intb intf inti inta inth intg intj
intArray 114 Variable Array – Example (2) • Each variable location in an array is called an element • Use Dim statement to define size and type Dim intArray(1 to 10) as Integer ‘creates the structure below • Treat as normal variables • Reference using subscripts: intArray(4) = 114
intArray Variable Array – Example (3) • Arrays allow programmers to write code once, but have it applied to many different data elements • Compare adding all the integers stored in the variables… intd intc inte intb intSum = inta + intb + intc _ + intd + inte + intf + intg _ + inth + inti + inj intf inti inta inth intg intj
intArray Variable Array – Example (4) • Arrays allow programmers to write code once, but have it applied to many different data elements • …to adding all the elements of the array intd intc inte intb For intI = 1 to 10 intSum = intSum + intArray(intI) Next intI intf inti inta inth intg intj
Control Arrays • VB allows the programmer to create arrays of controls on the form • Just as there are variable arrays, there may be arrays of objects, such as command buttons, labels, textboxes or picture boxes • An array of labels might be made with one label for each grade point • An array of textboxes might be made with one textbox for each grade, or credits • Characteristics • Name with subscripted elements • .Index property is the subscript (Properties Window)
Control Arrays • Using the same procedure, you can make arrays of labels, or of pictures, or of check boxes, etc. • You can change the GPA calculator program to make arrays of grades, credits and grade points
Creating a Control Array – Example • Create an toolbox object, perhaps a command button, changing its (name) and caption.
Creating a Control Array – Example 1. Copy and paste the object (Ctrl-C)(Ctrl-V) or Edit/Copy then Edit/Paste 2. The message “Do you want to create a control array?” appears. Answer “yes” 3. Type Edit/Paste or (Ctrl-V) several more times to make an array of commands
Creating a Control Array – Example • The Properties Window shows it all. • Note that the 4th command created is shown as “cmdButn(3)”
Creating a Control Array – Example • Arrange the buttons on the form as desired • Double clicking on any one of them opens the code window
Creating a Control Array – Example • The event handler is a bit strange. There is now a “parameter” inside the normally blank parentheses: Private Sub cmdButn_Click(Index As Integer) lblOutput.Caption = "## " & Index & " ##" End Sub
Creating a Control Array – Example • Run the process • Click each button • Observe the effect
Creating Multi-dimensional variable Arrays • Arrays can come in different dimensions • You need to specify the lower and upper bounds for each dimension • Array name; Dimensions; Bounds; Type • An example of a two-dimensional array: Dim strName (1 to 3, 1 to 4) as String
Advanced Variable Arrays • Multi-dimensional arrays • Parallel arrays • Searching arrays • Dynamic Arrays
Creating Multi-dimensional variable Arrays • When accessing/storing elements in the array… • Any integer literal, variable or expression can be used to subscript • Must stay within the bounds • Must have the correct number of subscripts • If storing, must assign the correct type of data • Given: Dim strName (1 to 3, 1 to 4) as String • Is strName (0, 0) = “Jones” valid? • Is strName (2) = “Smith” valid? • Is strName (4, 3) = “Larry” valid? • Is strName(3, 4) = 1402 valid?
1 2 3 4 1 2 3 1402 7532 Two-dimensional variable Arrays • Two dimensional arrays • require two subscripts • elements are listed (row, column) • Example Dim intSales(1 to 3, 1 to 4) _ as Integer • What is intSales(2, 3)?
Three-dimensional variable Arrays • Three dimensional arrays • require three subscripts (row, column, depth) • Example • Dim intSales (1 to 3, 1 to 4, 1 to 2) as Integer 1402 So the number 2134 is found where? the number 4521 is ______ the number 1402 is ______ the number 3425 is ______ 4521 2134 3425
Parallel Arrays strName intSales • Parallel arrays are used to hold related data with different types • Dim strName (1 to 5) as String • Dim intSales (1 to 5) as Integer • So, if we know that Smith is in strName(2), we also know his or her sales is in intSales(2) Jones Smith Frank Able Zean 1402 2301 0231 6762 0199
strArray A F S V W Q Z X Y L Searching Arrays strTarget = "Q" intFound = 0 For intI = 1 to 10 If strTarget = strArray(intI) Then intFound = intI Exit For End If Next intI • Searching implies looking for a target • A simple sequential search looks through the array for the target
Dynamic Arrays • You can re-dimension an array at run-time • Rules for resizing arrays: • Use can empty dimension list: Dim intArray() as Integer • Use ReDim to assign dimensions: ReDim intArray (1 to intN, 1 to 2) • Use ReDim to change Bounds ReDim intArray (1 to (intN + 10), 1 to 3) • Use Preserve keyword to save data in array ReDim Preserve intArray(1 to intN, 1 to 5)