Arrays - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Arrays

Description:

teamName(4) = 'Cubs' teamName(5) = 'Cubs' n = Val(txtNumber.Text) ... Chicago. Los Angeles. New York. Philadelphia. rm (2,2) rm (3,4) Chapter 7 - Visual Basic ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 51
Provided by: fayen
Category:
Tags: arrays | chicago | cubs

less

Transcript and Presenter's Notes

Title: Arrays


1
Chapter 7
  • Arrays

2
Outline and Objective
  • Arrays in Visual Basic
  • One- dimensional arrays
  • Control arrays
  • Two-dimensional arrays
  • Searching
  • Sorting

3
Array verses Simple Variable
  • Simple variable is used to store a single value.
  • Array variable is used to represent many values
    of the same type with one variable name.

4
Elements of an Array
  • Array Name A valid variable name for the
    structure.
  • Subscript or Index A value that refers to a
    particular array element.
  • Element An individual data item within an array.

5
Array Declaration
  • Syntax
  • Dim arrayname ( 1 To n) As VarType

6
Examples of arrays
  • Dim month ( 1 To 12) As String
  • Dim score (1 To 30) As Single
  • Dim students (1 To 30 ) As String

7
The Dim Statement
  • Used when you need to define an array .
  • The Dim statement sets up storage for array.
  • A Dim statement must occur before the first
    reference to the array elements.

8
Initializing an Array
  • Private Sub cmdWhoWon_Click()
  • Dim teamName( 1To 5) As String
  • Dim n As Integer
  • ' Fill array with World Series Winners
  • teamName(1) "Red Sox"
  • teamName(2) "Giants"
  • teamName(3) "White Sox"
  • teamName(4) "Cubs"
  • teamName(5) "Cubs"
  • n Val(txtNumber.Text)
  • picWinner.Print "The " teamName(n) " won
    World Series number" n
  • End Sub

9
Array teamName()
Array Name
  • teamName( 1 To 5) As String

Red Sox Giants White Sox Cubs Cubs
teamName(1)
Index
10
Initializing an Array by Reading from a File
  • Dim student ( 1 To 30) As String
  • Open STUDENTS.TXT For Input As 1
  • For count 1 To 30
  • Input 1, student ( count )
  • Next count

11
Adding Rows in an Array
  • Dim score( 1 To 30) As Single, student (1 To 30)
    As String
  • Open STUDENT.TXT For Input As 1
  • For count 1 To 30
  • Input 1, student (count), score (count)
  • Next count
  • sum 0
  • For count 1 To 30
  • sum sum score(count)
  • Next count
  • average sum/30

12
Parallel Arrays
  • Two arrays are referred to as parallel if
    subscripted variables having the same subscript
    are related.

13
Example of Parallel Arrays
  • Dim nom ( 1 To 8) As String , score ( 1 To 8 ) As
    Integer
  • Open SCORE.TXT For Input As 1
  • For student 1 To 8
  • Input 1, nom(student), score(student)
  • Next student
  • Close 1

14
Ordered Array
  • An array is ordered if its values are in either
    ascending or descending order.
  • For string arrays, the ANSI table is used to
    evaluate the less than or equal to condition.

15
Processing Arrays
  • Searching successive elements of an array is
    called Sequential Search.
  • Also called linear search or serial search.
  • A Sequential Search examines each element , from
    the first to the last, until the specified value
    is found or the end of the array is reached.

16
Example of Sequential Search (finding the quiz
grades greater than 8)
  • Dim quiz ( 1 To 15) As Single
  • For position 1 TO 15
  • If quiz(position) gt 8 THEN
  • picOutput.Print quiz (position)
  • count count 1
  • End If
  • Next Position

17
Sequential Search
  • Useful for short lists.
  • Very inefficient for long lists ( example names
    in telephone book).
  • Use binary search if the list is sorted.

18
Binary Search
  • In binary search, an ordered array is repeatedly
    divided in half. The half not containing the
    target value is ignored.
  • To use binary search, the data in the array must
    be arranged in ascending or descending order.

19
Binary Search
  • Private Sub BinarySearch(corp As String, result
    As String
  • foundFlag 0 '1 indicates corp
    found
  • first 1
  • last numFirmsDo While (first lt last) And
    (foundFlag 0) middle Int((first last)
    / 2) Select Case UCase(firm(middle))
    Case corp foundFlag 1 Case
    Is gt corp last middle - 1
    Case Is lt corp first middle 1
    End Select
  • Loop
  • End Sub

20
Binary Search
  • If foundFlag 1 Then
  • result "found
  • Else
  • result "not found
  • End If

21
Merging
  • A common practice involving arrays is merging two
    sorted arrays.

22
The method for merging two sorted arrays
  • 1.Compare the two first elements of the first and
    second arrays.
  • A. If one name alphabetically precedes the other,
    copy it onto the third list and cross it off the
    original array.
  • B. If the names are the same, copy the name onto
    the third list and cross out the name from both
    arrays.
  • 2. Repeat Step 1 with the new name in the array
    until you reach the end of either array.
  • 3. Copy the names from the remaining array onto
    the third array.

23
Passing an Array
  • An array can be passed to another procedure by
    reference.

24
Example of Passing an array
  • Private Sub cmddisplay_Click()
  • ' Pass array to subprogram and function
  • Dim score(1 To 5) As Integer
  • Call FillArray(score( ) )
  • picAverage.Cls
  • picAverage.Print Average is" Sum(score( ) )
    / 5
  • End Sub

Passing array score
25
Array Score is passed to a Subprogram
  • Private Sub FillArray(s( ) As Integer)
  • ' Fill array with scores
  • s(1) 85
  • s(2) 92
  • s(3) 75
  • s(4) 68
  • s(5) 84
  • End Sub

This array is pointing to the same location as
array score
26
Array Score is passed to a Function
  • Private Function Sum(s ( ) As Integer) As Integer
  • Dim total As Integer, index As Integer
  • ' Add up scores
  • total 0
  • For index 1 To 5
  • total total s(index)
  • Next index
  • Sum total
  • End Function

27
Control Array
  • A means of constructing arrays of text boxes,
    labels, and command buttons.
  • At least one element of a control array must be
    created when the form is designed.
  • The remaining elements can be created either
    during form design, or with the Load statement.

28
Creating Control Array during Form Design
  • Add one instance of the desired control to the
    form
  • Set the Index property to a number
  • Set any other properties that will be common to
    all other elements
  • Click on the control and then press CtrlC
  • Press Ctrl V, to create the next element

29
Control Array
  • All the properties of the first element are
    passed to other elements of the control array
    including the Top and Left properties.
  • The only property that differs from first element
    is the Visible property.
  • The Load statement sets the Visible property to
    False.

30
Control Array Event Procedures
  • Even though we may have many elements in the
    txtBox( ) control array, we will have just one
    txtBox_GotFocus event procedure to deal with.
  • The value of Index property for the elements of
    the control array must be passed.
  • Example
  • Private Sub txtBox_GotFocus (Index As
    Integer)

31
Creating Control Array at Run Time
  • You can create elements of a control array via
    Load statement at run time.

32
Creating Control Array at Run Time
  • The standard unit of measurement is called Twip.
  • To place a new element of a control array,
    adjust the Top and Left properties during run
    time.
  • Set the Visible property to True.

33
The location and size of a control
34
Example ( Creating control array during run time)
  • Private Sub Form_Load()
  • Dim i As Integer, monthNames As String
  • monthNames "FebMarAprMayJunJulAugSepOctNovDec"
  • For i 1 To 11
  • Load lblMonth(i)
  • Load txtInfo(i)
  • lblMonth(i).Top lblMonth(i - 1).Top
    txtInfo(0).Height
  • txtInfo(i).Top txtInfo(i - 1).Top
    txtInfo(0).Height
  • lblMonth(i).Caption Mid(monthNames, 3 i
    - 2, 3)
  • lblMonth(i).Visible True
  • txtInfo(i).Visible True
  • Next i
  • End Sub

35
Sorting
  • A common practice involving arrays is sorting the
    elements of the array in either ascending or
    descending order.
  • You can sort an array in alphabetic order or
    numeric order.
  • There are various methods to sort data items.

36
Types of Sorting
  • Bubble Sort
  • Shell Sort

37
Bubble Sort
  • The bubble sort involves comparing adjacent
    elements and swapping the values of those
    elements when they are out of order.
  • One complete time through the array is called a
    pass.

38
Bubble Sort
  • For passNum 1 To 4 'Number of passes is 1
    less than

  • number of items
  • For index 1 To 5 - passNum
  • If name(index) gt name(index 1) Then
  • Call SwapData( name( ), index)
  • End If
  • Next index
  • Next passNum

39
Swapping two variables
  • Private Sub SwapData ( A ( ) As String, index As
    Integer)
  • Dim temp As String
  • temp A ( index)
  • A(index ) A (index 1)
  • A ( index 1) temp
  • End Sub

40
Bubble Sort
  • The maximum number of passes necessary to sort
    the elements in an array is equal to the number
    of elements in the array less 1.
  • The minimum number of passes to sort an array may
    be one.
  • It works well for a small number of data items.
  • It is too slow for really long lists.

41
Shell Sort
  • Is similar to the bubble sort, but instead of
    comparing and swapping adjacent elements A(count)
    and A(count1), it compares and swaps nonadjacent
    elements A(count) and A(count Gap) , where Gap
    starts considerably greater than 1.

42
Shell Sort
  • Gap is set to one-half the length of the array.
  • After each pass if flag is set to 1, then Gap is
    halved again for the next pass.
  • At the end Gap becomes one, and adjacent elements
    are compared and swapped.

43
Shell Sort
  • gap Int(numParts / 2)
  • Do While gap gt 1
  • Do
  • doneFlag 1
  • For index 1 To numParts - gap
  • If part(index) gt part(index gap)
    Then
  • Call Swap( part(index), part(index
    gap)
  • doneFlag 0
  • End If
  • Next index
  • Loop Until doneFlag 1
  • gap Int(gap / 2) 'Halve the length
    of the gap
  • Loop

44
Efficiency of Bubble and Shell sort
  • Array Elements Bubble Sort Shell
    Sort
  • 5 10 15
  • 15 105 115
  • 25 300 302
  • 30 435 364
  • 100 4950 2638
  • 500 124,750 22,517

45
Two-Dimensional Arrays
  • Store values as a table, grouped into rows and
    columns.
  • The first subscript of a two-dimensional array
    refers to the row and the second subscript to the
    column.

46
Declaration of Two-Dimensional Array
  • Syntax
  • Dim arrayname (m1 To n1, m2 To n2) As vartype
  • Example
  • Dim rm (1 To 4, 1 To 4) As Single

column
row
47
Example of a two-dimensional array rm(1 To 4, 1
To 4)
Chicago
Los Angeles
New York
Philadelphia
Chicago
Los Angeles
New York
Philadelphia
rm (2,2)
rm (3,4)
48
Example of Input File
  • 0, 2054, 802, 738
  • 2054, 0, 2786, 2706
  • 802, 2786, 0, 100
  • 738, 2706, 100, 0

49
Manipulating a Two-Dimensional Array
  • Use nested For .. Next loops to assign or access
    elements of a two-dimensional array.
  • Example
  • For row 1 To 4
  • For col 1 To 4
  • Input 1, rm(row, col)
  • Next col
  • Next row

50
Example of two-dimensional array
  • Dim a(1 To 4, 1 To 5 ) As Integer
  • Private Sub cmdDisplay_Click()
  • For j 1 To 4
  • For k 1 To 5
  • a (j, k) (j - k) j
  • picOutput.Print a(j,k)
  • Next k
  • picOutput.Print
  • Next j
  • End Sub
Write a Comment
User Comments (0)
About PowerShow.com