Chapter 7: Working with Arrays
description
Transcript of Chapter 7: Working with Arrays
![Page 1: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/1.jpg)
Chapter 7: Working with Arrays
Visual Basic .NET Programming:
From Problem Analysis to Program Design
![Page 2: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/2.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 2
Objectives
• Define one-dimensional arrays
• Create String arrays
• Declare multi-dimensional arrays
• Search an array
• Use the ArrayList class
![Page 3: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/3.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 3
Defining One-Dimensional Arrays
• Arrays
– Consist of collection of elements
• Each element behaves as a variable does
– Can contain either:
• Primitive data
• Reference variables
![Page 4: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/4.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 4
Defining One-Dimensional Arrays (continued)
• Arrays
– Elements must have same data type
– Access individual elements in array using index
– Can be one- or multi-dimensional
![Page 5: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/5.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 5
Defining One-Dimensional Arrays (continued)
• Array class – System namespace
– Provides properties and methods for working with arrays
• One-dimensional array– Consists of elements arranged in single row
• Two-dimensional array– Has both rows and columns
![Page 6: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/6.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 6
Defining One-Dimensional Arrays (continued)
• Three-dimensional array
– Like a cube, with
• Rows
• Columns
• Pages
• VB .NET implements multi-dimensional arrays as arrays of arrays
![Page 7: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/7.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 7
Defining One-Dimensional Arrays (continued)
• Arrays are static
– Cannot change number of elements
– Can use ReDim statement
• Creates copy of existing array with additional elements
![Page 8: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/8.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 8
Defining One-Dimensional Arrays (continued)
• Declare array syntax:
– Dim arrayName (index of last element) As DataType
• Example:
– Dim examScores(4) As Integer
• Array indexes begin at zero
![Page 9: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/9.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 9
Defining One-Dimensional Arrays (continued)
• Accessing array element syntax:
– arrayName(index)
– Example:
• examScores(0)
![Page 10: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/10.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 10
![Page 11: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/11.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 11
Using a Loop to Iterate an Array
• Use loop to process array elements
– Repeat program code for each element
– Especially appropriate when working with larger arrays
![Page 12: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/12.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 12
Example 7-3: Computing Exam Average Using an Array and a
Loop
1. ' define variables
2. Dim examScores(4) As Integer
3. Dim sum, average As Double
4. Dim index As Integer
![Page 13: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/13.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 13
Example 7-3: Computing Exam Average Using an Array and a
Loop (continued)
5. ' loop to enter and sum the exam scores
6. For index = 0 To examScores.Length - 1
7. Console.WriteLine("Enter an Exam Score: ")
8. examScores(index) =
Convert.ToInt32(Console.ReadLine())
9. sum += examScores(index)
10. Next
![Page 14: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/14.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 14
Example 7-3: Computing Exam Average Using an Array and a
Loop (continued)
11. average = sum / examScores.Length
12. Console.WriteLine("The average is: " & Math.Round(average, 1))
![Page 15: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/15.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 15
Example 7-3: Computing Exam Average Using an Array and a
Loop (continued)
Sample Run:
Enter an Exam Score: 85
Enter an Exam Score: 90
Enter an Exam Score: 94
Enter an Exam Score: 89
Enter an Exam Score: 91
The average is: 89.8
![Page 16: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/16.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 16
Invoking Array Methods
• Selected Array class methods:
– Sort
• Array.Sort(examScores)
– Reverse
• Array.Reverse(examScores)
![Page 17: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/17.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 17
Creating String Arrays
• Code to create String array:
– Dim stringArray(3) As String
• Each element in array:
– Reference variable
– Data type String
![Page 18: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/18.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 18
Creating String Arrays (continued)
• Split method
– Extracts substrings separated by character value specified
– Uses substrings to populate String array
– Example:
• Dim stringArray() As String
= stringValue.Split(“ “c)
![Page 19: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/19.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 19
![Page 20: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/20.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 20
Declaring Multi-Dimensional Arrays
• Two-dimensional array
– Like table with rows and columns
• Three-dimensional array
– Like cube, with:
• Rows
• Columns
• Pages
![Page 21: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/21.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 21
Declaring Multi-Dimensional Arrays (continued)
• Each array dimension has own index
– Generally arrays are one- or two-dimensional
• Declare two-dimensional array
– Similar to one-dimensional array declaration
– But specify number of rows and columns
– Example:
• Dim testScoreTable(4, 1) As Integer
![Page 22: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/22.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 22
Declaring Multi-Dimensional Arrays (continued)
• Accessing elements in two-dimensional array example:
– testScoreTable(0, 0) = 85
• VB .NET implements multi-dimensional arrays by creating an array of arrays
![Page 23: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/23.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 23
Declaring Multi-Dimensional Arrays (continued)
• Create and populate small two-dimensional arrays using single statement:
– Dim testScoreTable(,) As Integer = _{{85, 88}, {90, 85}, {94, 60}, {89, 95}, {91, 100}}
– Do not specify number of rows or columns
• VB .NET uses data to determine row and column count
![Page 24: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/24.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 24
Example 7-8: Computing the First Exam Average Using a
Loop1. ' compute Exam 1 average using a loop
2. Dim sum As Double, row As Integer
3. For row = 0 To 4
4. sum += testScoreTable(row, 0)
5. Next
6. Console.WriteLine(“Exam 1 average is ” & sum / 5)
![Page 25: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/25.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 25
![Page 26: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/26.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 26
Searching an Array
• Search array to see if it contains specific value
• Use loop to compare each value to target
– Use Boolean variable to mark found value
![Page 27: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/27.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 27
Example 7-10: Searching an Array (excerpt)
6. Do While i < stringArray.Length And Not found
7. If stringArray(i).Equals(searchValue) Then
8. found = True
9. Else
10. i += 1
11. End If
12. Loop
![Page 28: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/28.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 28
Using the ArrayList Class
• Array elements are actually variables
– May be either:
• Primitive
• Reference variables
• Arrays have significant limitation:
– Fixed in size
– Difficult to change number of array elements as code is executing
![Page 29: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/29.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 29
Using the ArrayList Class (continued)
• ArrayList class
– System.Collections namespace
– Use to create array that is dynamically resizable
![Page 30: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/30.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 30
![Page 31: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/31.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 31
Example 7-11: Creating and Populating an ArrayList
Instance (excerpt)
1. ' create an ArrayList instance with 3 elements
2. Dim anArrayList As ArrayList = New ArrayList(3)
![Page 32: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/32.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 32
Example 7-11: Creating and Populating an ArrayList
Instance (continued)
8. ' populate the first two elements
9. anArrayList.Add(s1)
10. anArrayList.Add(s2)
11. Console.WriteLine(“number of elements = ” &
anArrayList.Capacity)
12. Console.WriteLine(“populated elements = ” &
anArrayList.Count)
![Page 33: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/33.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 33
Example 7-11: Creating and Populating an ArrayList
Instance (continued)
13. ' iterate and display
14. Dim i As Integer
15. For i = 0 To anArrayList.Count - 1
16. Console.WriteLine(anArrayList.Item(i))
17. Next
![Page 34: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/34.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 34
Example 7-11: Creating and Populating an ArrayList
Instance (continued)
Sample Run:
number of elements = 3
populated elements = 2
Hello
World
![Page 35: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/35.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 35
Example 7-11: Creating and Populating an ArrayList
Instance (continued)
• Constructor– Method that is invoked when you instantiate a class
• ArrayList properties:– Capacity
• Contains number of elements
– Count• Contains number of populated elements
![Page 36: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/36.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 36
Example 7-13: Invoking ArrayList Methods
• Methods:– Contains:
• anArrayList.Contains(s1)
• Returns True if ArrayList contains reference to argument
– IndexOf:• anArrayList.IndexOf(s3)
• Returns index of argument in array
![Page 37: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/37.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 37
Example 7-13: Invoking ArrayList Methods (continued)
• Methods:
– Reverse:
• anArrayList.Reverse()
• Rearranges contents of elements in reverse sequence
![Page 38: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/38.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 38
Programming Example: Employee Payroll
• Input
– Taxable wages
– Marital status
• Output
– Amount of federal tax to be withheld
![Page 39: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/39.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 39
Programming Example: Employee Payroll (continued)
• Purpose of this program
– Input employee’s taxable wages and marital status
– Compute and display amount of federal tax to be withheld
• Formatted as currency
• Use arrays to hold tax tables
![Page 40: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/40.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 40
Summary• Arrays are instances of Array class
– Consist of elements with each element behaving as variable does
– Can be either:
• One-dimensional
• Multi-dimensional
• VB .NET supports multi-dimensional arrays
– Implemented by creating array of arrays
![Page 41: Chapter 7: Working with Arrays](https://reader036.fdocuments.us/reader036/viewer/2022082202/56815a87550346895dc7f87b/html5/thumbnails/41.jpg)
Visual Basic .NET Programming: From Problem Analysis to Program Design 41
Summary (continued)• ArrayList class
– Dynamically resizable array
– Capacity property
• Contains number of elements in ArrayList
– Count property
• Contains number of populated elements