1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to...

72
1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic .NET, Introduction to Programming

Transcript of 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to...

Page 1: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

1

Lesson 4 — Decisions, Looping, Arrays, and Searching

Microsoft Visual Basic .NET, Introduction to Programming

Page 2: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

2

Objectives

Plan the solution to a programming problem. Understand and apply the rules of logic to complex

True/False expressions. Write advanced lf-Then-Else End If statements. Write Do-While and Do-Until statements. Create program loops that depend on logical

expressions. Declare and use arrays. Use built‑in functions for a variety of tasks.

Page 3: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

3

Vocabulary

Algorithm Array Binary search Concatenation Counting statement Data structure Debugging line Declarations Element

Error trapping statements

Flag Index Items collection Lifetime Linear search Member Mod

Page 4: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

4

Vocabulary

Private variable Running total Sentinel Stepwise refinement

Subroutine Subscript User interface Visibility

Page 5: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

5

Approaching a Problem

Collect information. Create the user interface. Develop the algorithm. Subdivide the problem. Choose data structures. Write the code.

Page 6: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

6

Collect Information

Start by getting all the information you can about the problem. Talk to the users who will run the program. Find out what they want. Do not assume that you know more about their problems than they do. Gather as much information as you can, but expect to revise your solution later to meet unexpected or newly discovered needs.

Page 7: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

7

Create the User Interface

The user interface is how the user will interact with the program. It is what the user keys and clicks. It is what the user sees as output. You can create a Visual Basic program that is "all show." Design the forms used to enter data. Design the forms that display the information. Once these samples are created, return to the user. Find out if your mock solution is what the user expects.

Page 8: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

8

Develop the Algorithm

Solve the problem completely on paper. If you cannot solve a problem with paper, a pencil, and a calculator, you probably will not be able to program the computer to solve the problem. The step-by‑step solution to a problem is called an algorithm. The word algebra comes from the same root.

Page 9: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

9

Subdivide the Problem

Subdivide each section into smaller and smaller tasks. Once you’ve divided the problem, each part can be approached individually. Usually these smaller problems are easy to solve. Even if they are not, you have at least modularized the problem, and you can tackle the tough parts later in the process. This process is called stepwise refinement.

Page 10: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

10

Event Procedure

An event procedure is a subroutine connected with an action performed on an object like the Click event of a text box or button. When a button or menu item is clicked, the code associated with that event is executed. The Click event is one of many events that an object may respond to.

Page 11: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

11

Choose Data Structures

A data structure is a way to organize data. The simplest way to represent data is to use variables.

Another important data structure is the array. An array is a list of values referred to by a single variable name. Values in an array may be numbers or strings, or they may represent complex data types that include many pieces of information.

Other data structures organize data according to relationships between the individual data items.

Page 12: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

12

Write the Code

Writing the code may be the very last thing you do. Or it may not be. Be flexible. It may be wise to develop an algorithm and write the code to solve a particular piece of the problem before the user interface is designed or before a data structure is chosen. You may need to experiment with different solutions or different data structures to find the one that fits best.

Page 13: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

13

Important!!

Don't be afraid to start over. The things you learn in your first attempt will make your second attempt better.

Page 14: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

14

ListBox and ComboBox

The ListBox control is a display tool that lets you display lists of values. It also allows the user to select items from the list for further processing.

The ComboBox control is closely related to the ListBox control. When you select an item from the Class Name box in the Code window, you are using a combo box. A combo box is like a text box, but it supplies the user with a list of suggested entries.

Page 15: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

15

Items Collection

The entries displayed in a list box or combo box are called items. All the items together form the Items collection. A collection is itself an object that contains other related objects. In this case, the objects of the collections are the entries in the list box or combo box.

Page 16: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

16

Note

In many fonts, a lowercase L is nearly indistinguishable from the numeral 1 or an uppercase I (eye). The context should tell you which to use. The three-letter prefix for the name of a list box is lst, except each character is lowercase.

Page 17: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

17

‘ Initialize the ComboBoxescboCapacity.Items.Add("30 gallon")

cboCapacity.Items.Add("40 gallon") cboCapacity.Items.Add("50 gallon") cboPower.Items.Add("Natural Gas") cboPower.Items.Add("Electric") cboPower.Items.Add("LP Gas") cboWarranty.Items.Add("1 year") cboWarranty.Items.Add("5 years") cboWarranty.Items.Add("8 years") cboWarranty.Items.Add("10 years")

Page 18: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

18

Note

The single quote ‘ character starts a comment. Comments are normally displayed in a green font.

Page 19: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

19

Final Appearance of frmWaterHeater

Page 20: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

20

Note

To enter repetitive code, select the part of the code that repeats. Select Edit|Copy from the menu bar, or press Ctrl+C to copy the selected code. Move the cursor to the beginning of the next line and paste the code by selecting Edit|Paste or by pressing Ctrl+V. Once the code is copied a sufficient number of times, go back and edit each line.

Page 21: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

21

lstQualifying.Items.Clear()

lstQualifying.Items.Add(cboCapacity.Selecteditem)

lstQualifying.Items.Add(cboPower.SelectedItem)

lstQualifying.Items.Add(cboWarranty.Text)

Page 22: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

22

Program Decisions

The simplest version of the If statement takes only a single line:

If condition Then statement

NOTE:

The one-line If statement is the original version. Many early versions of BASIC were limited to this kind of If.

Page 23: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

23

Boolean or Logical Expression

An expression that, when evaluated, results in a True or False answer.

If the condition tested is True, the statement or statements following Then are executed. If the condition tested is False, the statement(s) after Then are skipped. In either case, the statements following the If statement are executed.

Page 24: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

24

Other Versions of the If Statement

If condition Then

Statement (s)

End If

Page 25: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

25

Other Versions of the If Statement

If condition Then

Statement(s) of the True branch

Else

Statement(s) of the False branch

End If

Page 26: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

26

Nesting If Statements

If Age < 2 ThenPerson = "Infant"

ElseIf Age <= 5 Then

Person = "Toddler" Else

Person = "Older Child"End If

End If

Page 27: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

27

ElseIf

If Age < 2 Then

Person = "Infant"

ElseIf Age <= 5 Then

Person = "Toddler"

Else

Person = "Older Child"

End If

Page 28: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

28

Three Ifs

If Age < 2 Then Person = "Infant"

If 2 <= Age And Age <= 5 Then Person = "Toddler"

If Age > 5 Then Person = "Older Child"

Page 29: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

29

Select Case Statement

Select Case textexpressionCase expressionlist

Case expressionlist

Statement(s)

Statement(s)

Case Else

Statement(s)

End Select

Page 30: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

30

Simple Example

Select Case ChoiceCase 1

txtShowOne.Visible = True

Case 2

MessageBox.Show "Show Two"

Case Else

MessageBox.Show "Not one or two."

End Select

Page 31: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

31

Ranges

Select Case AgeCase Is < 2

Person = "Infant"Case 2 To 5

Person = "Toddler"Case 6 To 12

Person = "Preteen"Case 13 To 19

Person = "Teenager"Case 20,21,22

Person = "Young adult"Case Is > 22

Person = "Older adult"End Select

Page 32: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

32

Adding Items to the Items Collection

Page 33: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

Dim Index As Integer = lstCardList.SelectedIndexMessagebox.Show("Selected index:" & Index.ToString, "Index")Select Case Index Case 0 'Discover card Messagebox.Show("$1500", "Credit Limit:") Case 1 'MasterCard Messagebox.show("$2000", "Credit Limit:") Case 2 'VISA Messagebox.Show("$3000", "Credit Limit:")

Case 3 'VISA Gold Messagebox.Show("$3500", "Credit Limit:") Case 4 'Platinum Messagebox.Show("$5000", "Credit Limit:") Case Else Messagebox.Show("Illegal Entry")End Select

Page 34: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

34

Debugging Line

A debugging line is a line of code included in the program to let the user know what is going on as the code is executed. In the final version of the application, there is no need to display the value of Index. Open the Code window, locate the Messagebox.Show statement that displays the value of Index, and put a single quote at the beginning of the line. This is called commenting out a line of code because the single quote character turns the whole line into a comment. Commenting out a debugging line is better than deleting it because, when the program is modified, the line may once again be needed.

Page 35: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

35

Programming Skills

Characters or strings can also be used to select different cases, as shown below:

Select Case FirstName Case "Groucho"

Statements(s) Case "Harpo"

Statements(s) Case "Chicko"

Statement(s) Case Else

Statements(s)End Select

Page 36: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

36

A Lesson in Repetition

For loops are called definite loops because the starting point, the upper limit, and the increment are all known before the loop begins. But it is not always possible to know the number of repetitions necessary for a loop before the loop begins. You may need to process records from a database until you run out of data. Or you may need to process data from the keyboard until a special ending value, called a sentinel value, is entered. For these situations, use an indefinite loop.

Page 37: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

37

Do While

Do While condition

Body

Loop

Page 38: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

38

Do While Example

In the loop below, the value of x is initialized to 1 before the loop starts. The condition x < 100 is evaluated before the body of the loop is executed. Since the condition is True, the statement in the body of the loop is executed. The value of x is reassigned to 2 * 1 + 1, or 3. The Loop statement at the end sends the program flow back to the top of the loop. At the top of the loop, the condition is tested again to see if it is True. Since it is still True, the loop repeats.

x = 1Do While x < 100

x = 2 * x + 1Loop

Page 39: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

39

Do-While Testing at the End

Do

Body

Loop While condition

Page 40: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

40

An Example

Dim PopBottles As Integer

Do

PopBottles = CInt(InputBox("Enter the number of broken bottles:"))

Loop While PopBottles > 0

Page 41: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

41

Do-Until

Do Until condition

Body

Loop

Example:

X = 1

Do Until x > 100

x = 2 * x + 1

Loop

Page 42: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

42

Do-Until

X = 1

Do

Body

Loop Until x > 100

Page 43: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

43

Divisibility

To test divisibility, you use the Mod operator. The Mod operator divides one whole number by another and returns the remainder of the division. Five mod three is two since three goes into five one time with a remainder of two. If two numbers are divided and the remainder is 0, the first number is divisible by the second. Fifteen Mod five is 0 because five goes into fifteen evenly, leaving a remainder of 0.

To test to see if a number is even, divide it by two. If the number is divisible by two, then number Mod two will equal 0. If the number is odd, the remainder is one.

Page 44: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

44

The Goldbach Conjecture

Take any positive whole number. If the number is even, divide it by two. If the number is odd, multiply it by three and add one. Goldbach claimed that the series of numbers generated by applying these two rules always ends with a one.

For example, if you start with the number 7, since it is odd, multiply by 3 and add 1. The result is 22. Since 22 is even, divide by 2. The result is 11. The sequence generated is 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, and 1.

Page 45: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

45

lstDisplay.Items.Clear()

Page 46: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

46

Dim x As Integer Do x = CInt(InputBox("Enter a positive whole number:", "Goldbach", "7")) Loop Until x > 0 lstDisplay.Items.Add(x.ToString) Do While x <> 1

If x Mod 2 = 0 Then x = x / 2 Else x = 3 * x + 1 End If lstDisplay.Items.Add(x.ToString)

Loop

Page 47: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

47

Dim x As Integer, y As Integer, Largest As Integer

x = 1

Do

x = x + 1

Largest = x

y = x

lstDisplay.Items.Clear()

lstDisplay.Items.Add(y)

Page 48: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

48

Do While y <> 1 If y Mod 2 = 0 Then y = y \ 2 Else y = 3 * y + 1 End If lstDisplay.Items.Add(y) If y > Largest Then Largest = y End If

Loop

Loop Until Largest > 1000

Page 49: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

49

Programming Skills

The section of the code shown below:If y > Largest Then

Largest = yEnd If

These lines compare the current value of y with a value stored in Largest. If the value of y exceeds the value of Largest, the value of y is saved in Largest. This allows the programmer to find the largest (or smallest) item in a list and save that value for later processing.

Page 50: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

50

The Counting Statement, x = x + 1.

Algebraically, this is not a valid equation, but it works fine in a program. It is not an equation at all, but it is an assignment statement. Evaluation starts on the right side of the equal sign. The value of x is found, one is added, and the result is assigned back to the variable x. This is a common statement that may occur several times in the same program.

Page 51: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

51

Running Total: Total = Total + x

Evaluation starts on the right side of the equal sign. The value of Total is fetched from memory. The value of x is added to the Total and the result is assigned back to the variable, Total. What normally happens in a checkbook is that a total is written at the top of the page, then check amounts are entered on each line and subtracted from the running total. Running totals are common in programs.

Page 52: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

52

Arrays

An array is a list of values referred to by a single name. Arrays make it easy to access a list of related values. Arrays store lists of names, values, or objects. An array is an appropriate data structure anytime you want to hold a list of values in memory for further processing or display.

You declare an array in a Dim statement by following a variable name with a number enclosed in parentheses.Dim ClassList(45) As StringDim Scores(10) As Integer

Page 53: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

53

Putting Values into an Array

Dim ClassList(10) As String

Dim Index As Integer

For Index = 0 To 9 'Valid indices from 0 to 9.

ClassList(Index) = InputBox("Enter name[" &

Index.toString & "]:")

Next

Page 54: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

54

The Out-of-Range Error Message

Page 55: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

55

Linear Search

Dim Target As String Target = InputBox("Enter the target:") For Index = 0 To 9

If Target = ClassList(Index) Then Exit For End If

Next MessageBox.Show(Index.ToString)

Page 56: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

56

Scope of a Variable

The scope of a variable is its visibility and its lifetime. The lifetime of a variable is when it does and does not hold valid values. Most variables have a limited life. They come into existence at the beginning of an event procedure and disappear when the procedure ends. They reappear when the procedure is again executed.

The visibility of a variable is the point at which the value of the variable is available to use or change. A variable declared with a Dim statement in one event procedure is normally not available (visible) in another event procedure. Such a variable is a private variable.

Page 57: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

57

Final Placement of Controls on the Form

Page 58: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

58

Dim FirstName(5) As String Dim Current As Integer

Current is used to keep track of the next empty space in the array. Visual Basic automatically initializes its value to 0. It is also used when names are added to the array. When the value of Current exceeds the last valid array subscript, the program refuses to accept further input. Current is declared in Declarations along with the array because its lifetime must equal the lifetime of the form.

Page 59: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

59

If Current < 5 Then FirstName(Current) = InputBox("Enter a first name:")

lstDisplay.Items.AddFirstName(Current)

Current = Current + 1

Else

MessageBox.Show("Array capacity exceeded!")

End If

Page 60: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

60

lstDisplay.Items.Clear

Dim Index As Integer

For Index = 0 To 4

FirstName(Index) = " "

Next

Current = 0

btnEnter.Focus

Page 61: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

61

Dim Target As String, Index As Integer Dim Found As Boolean Do Target = InputBox("Enter the name for which to search:") Loop Until Target <> "" Found = False 'Initialize the Boolean variable. For Index = 0 To Current - 1 If Target = FirstName(Index) Then Found = True Exit For End If Next

Page 62: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

62

If Found Then

MessageBox.Show(Target.ToString & " found at " & Index.ToString)

Else

MessageBox.Show(Target.ToString & ": not in list.")

End If

Page 63: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

63

Binary Search

The binary search is a powerful algorithm to find a target in an ordered list. If you use a linear search to find a target in an unordered list of 100, you will have, on average, 50 comparisons before you find the target. Each time the If statement compares the target to an item in the list, it is a comparison. The number of comparisons is proportional to the number of items in the list. If there are n items in the list, it takes an average of n/2 comparisons to find the target in an unordered list.

The binary search can find an item in an ordered list of 100 with no more than seven comparisons. It can search a list of 1000 items with no more than 10 comparisons. The linear search would average 500 comparisons with a list of 1000.

Page 64: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

64

Binary Search

The reason the binary search is so efficient is that, with every comparison, the list is cut in half. The search starts by comparing the target with the middle of the list. If the target is equal to the item examined, the search is over. If the target is alphabetically less than the middle, the bottom half of the list is thrown out. The list is redefined to include just the items in the top half of the list and the process is repeated. With every comparison, the list of the remaining items is cut in half. Every time the size of the list doubles, only one additional comparison is needed to complete the search.

Page 65: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

65

Binary Search, Setup

Dim Target As String

Dim High, Low, Md, Position As Integer

'Assume lstDisplay is filled with names and Sorted = True

Position = 0

Low = 0

High = lstDisplay.Items.Count - 1

Page 66: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

66

Binary Search, Loop

Do While Low <= High Md = (Low + High) \ 2 If Target = lstDisplay.Items(Md) Then Position = Md Exit Do ElseIf Target < lstDisplay.Items(Md).ToString Then High = Md - 1 Else Low = Md + 1 End If Loop

Page 67: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

67

Binary Search, Finish

If Low <= High Then

MessageBox.Show("Found " & Target & “

at position:" & Position)

else

MessageBox.Show("The Target has not

been found.")

End If

Page 68: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

68

Festival of Strings

Page 69: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

69

Summary

The planning and execution of a programming application can be broken down into the following steps:

Collect information from the user about the intended use of the application.

Create the user interface and show the result to the user. Alter the design in accordance with the user's needs.

Develop the algorithm used to solve the problem. Work the problem out with paper, pencil, and a calculator before trying to solve it on the computer.

Subdivide the problem by breaking it into smaller and smaller pieces. Plan the interaction of all pieces.

Choose data structures to represent the data processed in the program. This choice may be determined by the algorithm and must be carefully made to optimize both run time and storage space.

Write the code needed to solve each small problem. If the planning is careful and complete, the code will fit together like a puzzle.

Page 70: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

70

Summary

A combo box lets the user choose an item from a list. It is most like the text box control.

There are several versions of the If statement. Logical expressions used to build the conditions

tested in If statements can be combined using And, Or, and Not.

The Select Case statement replaces a series of If- Then statements.

The Do-While and Do-Until statements build indefinite loops. These loops are controlled by conditions within the loop itself.

Page 71: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

71

Summary

Arrays are lists of values referred to by the same name. The elements or members of the array are uniquely selected by specifying an index or subscript value.

A linear search is used to search for a target value in an array. It works by sequentially searching every item in the list. The average number of comparisons made by the linear search while searching for a target among n elements of the list is about n/2.

A binary search can search an ordered list with a handful of comparisons. The maximum number of comparisons is the value of x in the equation 2x = n, where n is the number of items in the list.

Page 72: 1 Lesson 4 — Decisions, Looping, Arrays, and Searching Microsoft Visual Basic.NET, Introduction to Programming.

72

Summary

If the Sorted property of a list box is set to True, the elements of the list box are always displayed in alphabetical order.

Visual Basic uses a large number of functions to handle special jobs involving mathematics and string manipulation.