1 / 80

Chapter 7 – Arrays

Chapter 7 – Arrays. 7.1 Creating and Accessing Arrays 7.4 Two-Dimensional Arrays. Simple and Array Variables. A scalar variable (or simple variable) is a name to which Visual Basic can assign a single value. These are the variables we have used to date

nickolas
Download Presentation

Chapter 7 – Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7 – Arrays 7.1 Creating and Accessing Arrays 7.4 Two-Dimensional Arrays

  2. Simple and Array Variables • A scalar variable (or simple variable) is a name to which Visual Basic can assign a single value. • These are the variables we have used to date • An array variable is a collection of simple variables of the same type to which Visual Basic can efficiently assign a list of values.

  3. Example Suppose you want to evaluate the exam grades for 30 students and to display the names of the students whose scores are above average. We need a total of 60 simple variables! Private SubbtnDisplay_Click(...) _ HandlesbtnDisplay.ClickDim student0 As String, score0 As DoubleDim student1 As String, score1 As Double . . Dim student29 As String,score29 As Double How practical is this?

  4. Using Arrays Upper bound of subscripts in the array Dim students(29) As String Dim scores(29) As Double Array name Data type Only two array variables needed for 30 data items

  5. Putting Values into an Array students(0) = "Tom Brown" Subscript (index) Read: "students sub zero equals Tom Brown" Which means that the string "Tom Brown" is being stored at the first location in the array called students because all arrays begin counting at 0.

  6. Array Terminology • Dim arrayName(n) As DataType • 0 is the lower bound of the array • n is the upper bound of the array–the last available subscript in this array • The number of elements, n + 1, is the size of the array.

  7. Example 7.1.1: Form mtbNumber txtWinner

  8. Example 7.1.1: Code Subscript (also called Index)

  9. Example 7.1.1: Code and Output Subscript starts at 0 Count starts at 1 Assigning the selected element of the array into the TextBox’s Text property. The array is local, and is assigned values every time the button is clicked.

  10. Load Event Procedure Occurs as the Form loads in memory (when the program first executes) Private Sub frmName_Load(...) _ HandlesMyBase.Load The keyword MyBase refers to the form being loaded. This event procedure is a good place to assign values to an array. Why should array variables be assigned when form loaded?

  11. Form LoadExample 7.1.2: Code Class variable, not local variable. Array loads when form is run By making the array a class variable and loading it in the Form Load, you only need to create the array once.

  12. Initializing Arrays Arrays may be initialized when created: DimarrayName() As DataType= {value0, value1, value2, ..., valueN} declares an array having upper bound N and assigns value0 to arrayName(0), value1 to arrayName(1), ..., and valueNto arrayName(N). Example: DimteamNames() As String = {"Packers","Packers","Jets","Chiefs"} Rather than explicitly specifying the array’s size, it is determined based on the number of initial values that are assigned.

  13. Array Methods

  14. Methods for Numeric Arrays

  15. Using Loops Instead of Methods • In Example 7.1.4 the greatest value in a numeric array ages is determined. • The value of the variable max is set to the first element of the array. • Then a For…Next loop successively examines each element of the array and resets the value of max when appropriate.

  16. Loop reading arrayExample 7.1.4: Code Dim ages() As Integer = {55, 56, 61, 52, 69, 64, 46, 54, 47} 'last 9 presidents Dim max As Integer = ages(0) For i As Integer = 1 To ages.Count - 1 If ages(i) > max Then max = ages(i) End If Next txtOutput.Text = "Greatest age: " & max Output: Greatest age: 69 Start at position 0 The loop counter is the subscript

  17. For Each Loops For i As Integer = 1 To ages.Count - 1 If ages(i) > max Then max = ages(i) End If Next can be replaced with ForEach age As Integer In ages If age > max Then max = age End If Next

  18. For Each Loops (continued) • In the For…Next loop, the counter variable i can have any name. • In the For Each loop, the looping variable age can have any name. • The primary difference between the two types of loops is that in a For Each loop no changes can be made in the values of elements of the array.

  19. Passing an Array Element A single element of an array can be passed to a procedure just like any ordinary numeric or string variable. Private SubbtnDisplay_Click(...) Handles _ btnDisplay.Click Dim num(20) As Integer num(5) = 10 lstOutput.Items.Add(Triple(num(5))) End Sub Function Triple(ByVal x As Integer) As Integer Return 3 * x End Function

  20. Passing Arrays to Procedures • An array declared in a procedure is local to that procedure. • An entire array can be passed to a Sub or Function procedure. • The calling statement uses the name of the array without parentheses. • The header of the Sub or Function procedure uses the name with an empty set of parentheses.

  21. Example: 7.1.6Variation of Example 7.1.4 Function procedure used to find the largest number in an array. The loop counter is the subscript What is the scope of the array?

  22. Input assigned to arrayExample 7.1.7 3-Use of Average Method 1-Set size of array based on user input 2-Loop saving each grade to the array

  23. User-Defined Array-Valued Functions Headers have the form FunctionFunctionName(ByValvar1 AsType1, ByValvar2 As Type2, ...) As DataType()

  24. Searching for an Element in an Array A statement of the form numVar= Array.IndexOf(arrayName, value) assigns to numVar the index of the first occurrence of value in arrayName. Or assigns -1 if the value is not found.

  25. Searching an Array:Example 7.1.8 -1 if item not found No error checking – name must be in correct case

  26. Copying an Array If arrayOne and arrayTwo have been declared with the same data type, then the statement arrayOne = arrayTwo makes arrayOne an exact duplicate of arrayTwo. Actually, they share the same location in memory.

  27. Split Method • Facilitates working with text files. • Split can convert a string containing comma-separated data into a string array. • The 0th element of the array contains the text preceding the first comma, the 1st element contains the text between the first and second commas, ..., and the last element contains the text following the last comma.

  28. Split Example For instance, suppose the string array employees has been declared without an upper bound, and the string variable line has the value “Bob,23.50,45”. employees = line.Split(","c) • sets the size of employees to 3 • sets employees(0) = “Bob” • sets employees(1) = “23.50” • sets employees(2) = “45”

  29. Split Comments employees = line.Split(","c) • In this example, the character comma is called the delimiter for the Split method, and the letter c specifies that the comma has data type Character instead of String • Any character can be used as a delimiter. If no character is specified, the space character will be used as the delimiter.

  30. Example Private Sub btnConvert_Click(...) _ HandlesbtnConvert.Click DimstateData(), line As String line = "California,1850,Sacramento,Eureka" stateData = line.Split(","c) For EachentryAs String In stateData lstOutput.Items.Add(entry) Next End Sub

  31. Example Output California 1850 Sacramento Eureka

  32. Example 7.1.9 Letter ‘c’ designates character instead of string

  33. Join Function The reverse of Split method is Join function. Join concatenates the elements of a string array into a string containing the elements separated by a specified delimiter. DimgreatLakes() As String = {"Huron", "Ontario", "Michigan", "Erie", "Superior"} Dim lakes As String lakes = Join(greatLakes, ",") txtOutput.Text = lakes Output: Huron,Ontario,Michigan,Erie,Superior Sets up Array Join & assign to lakes

  34. Out of Range Error The following code references an array element that doesn't exist. This will cause an error. How many items are in the Tree array? What are the subscripts?

  35. Text Files • Hold data to be processed by programs. • Can be created, viewed, and managed by word processors, Notepad, or by the Visual Basic IDE. • Have the extension .txt • Normally placed in the bin\Debug folder in the Solution Explorer • Can be used to “load” array with loop

  36. A Text File Displayed in the Visual Basic IDE (7.1.3) The file contains the ages of the first 44 U.S. presidents when they assumed office.

  37. Using a Text File to Populate a String Array • Assume that the previous text file is in the program’s bin\Debug folder. • The text file can be used to fill a string array with the statement DimstrAges() As String = IO.File.ReadAllLines("AgesAtInaugural.txt") • The array strAges will have size 44 and upper bound 43.

  38. Populating a Numeric Array with a Text File DimstrAges() As String =IO.File.ReadAllLines("AgesAtInaugural.txt") Dimages(43)As Integer For iAs Integer = 0 To43 ages(i) = CInt(strAges(i)) Next The File class’s ReadAllLinesmethod opens the designated file, reads all lines, and returns a string array containing these values. Class (definition of object with properties and methods) Argument (data passed to a method) IO.File.ReadAllLines("AgesAtInaugural.txt") Method (function or sub of a class) Namespace (a collection of related classes)

  39. Example 7.1.3

  40. Example 7.1.3 Read data from file

  41. Example 7.1.3 Convert from string to integer, and place into integer array

  42. Example 7.1.3 Various methods of the Array class

  43. Example 7.1.5 • This example illustrates several topics • Reading from a text file • Manipulating Form’s properties in the code • Looping through an array, using a flag to determine if something has been found • Resizing an array using the ReDim Preserve statement

  44. Example 7.1.5 – Form Load Read from text file into array

  45. Example 7.1.5 – Form Load Determine the number of elements in the array

  46. Example 7.1.5 – Form Load Dynamically set the form’s title text

  47. Example 7.1.5 – Form Load Dynamically set the button’s text

  48. Example 7.1.5 – btnDisplay

  49. Example 7.1.5 – btnDisplay Looping through the array to display the game numbers that the specified team has won. Note the use of the loop counter variable to index into the array

More Related