Arrays Chapter 8. Overview u General discussion u Variable arrays u Control arrays u...
-
Upload
liliana-harvey -
Category
Documents
-
view
250 -
download
0
Transcript of Arrays Chapter 8. Overview u General discussion u Variable arrays u Control arrays u...
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
3
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
210 Product
Stuff
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
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
intdintc inte
intj
intf
intb
intainti
inthintgintArray
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
114
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…
intdintc inte
intj
intf
intb
intainti
inthintgintArray
intSum = inta + intb + intc _+ intd + inte + intf + intg _+ inth + inti + inj
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
intdintc inte
intj
intf
intb
intainti
inthintgintArray
For intI = 1 to 10 intSum = intSum + intArray(intI)Next intI
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 – Example1. 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?
Two-dimensional variable Arrays Two dimensional arrays
require two subscripts elements are listed (row, column)
ExampleDim intSales(1 to 3, 1 to 4) _as Integer
What is intSales(2, 3)?1
2
3
1 2 3 4
1402
7532
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
2134
4521
3425
So the number 2134 is found where? the number 4521 is ______ the number 1402 is ______ the number 3425 is ______
Parallel Arrays
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)
strName intSales
Jones
Smith
Frank
Able
Zean
1402
2301
0231
6762
0199
Searching Arrays
strTarget = "Q" intFound = 0For intI = 1 to 10 If strTarget = strArray(intI) Then intFound = intI Exit For End IfNext intI strArray
A F S V W Q Z X Y L
• 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 arrayReDim Preserve intArray(1 to intN, 1 to
5)