Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Need answer in FLOWGORITHM program screenshots, not a flowchart please, Using the Binary Search Algorithm Constance manages a cooking school that employees six instructors. She

Need answer in FLOWGORITHM program screenshots, not a flowchart please,

Using the Binary Search Algorithm

Constance manages a cooking school that employees six instructors. She has asked you to design a program that she can use to look up an instructor's phone number. You decide to use two parallel arrays: one named names that will hold the instructors' last names, and another named phones that will hold each instructors' last names, and another named phones that will hold each instructors' phone number. Here is the general algorithm:

1. Get an instructor's last name from the user.

2. Search for the name in the names array.

3. If the name is found, get its subscript. Use the subscript to display the contents of the parallel phones array. If the name is not found, display a message indicating so.

Program 9-8 shows the pseudocode for the program. Note that the array contents are already sorted in ascending order. This is important because the program uses the binary search algorithm to locate a name in the names array.

1. Modul Main()

2. // Constant. for array sizes

3. Constant integer SIZE =6

4.

5. // array of instructor names, already sorted in

6. // ascending order.

7. Declare String names[SIZE] = "Hall", "Harrison",

8. "Hoyle", "Kimura",

9. "Lopez", "Pike"

10.

11. // Parallel array of instructor phone numbers.

12. Declare String phones[SIZE] = "555-6783", "555-0199"

13. "555-9974", "555-2377",

14. "555-7772", "555-1716"

15.

16. //variable to hold the last name to search for.

17. declare String searchname

18.

19 // variable to hold the subscript of the name.

20. declare integer index

21.

22. // variable to control the loop.

23. declare String again == "Y"

24.

25. While (again == "Y" OR again == "Y" )

26. get the name to search for,

27. Display "Enter a last name to search for."

28. input searchName

29.

30 //Search for the last name.

31 index = binary searchnames, searchname, SIZE

32

33 If index 1 = -1 Then

34 // Display the phone number.

35 Display the phone number is ", phones [index]

36 Else

37 // the name was not found in the array.

38 Display searchName, "was nor found."

39 End If

40

41 // Search again?

42 Display "Do you want to search again? (Y=yes, N=No)"

43 Input again

44 end While

45

46 End Module

47 // This is for FUNCTION

48 // the binarySearch function accepts as arguments a String

49 // array, a value to search the array for, and the size

50 // of the array. If the value is found in the array, its

51 // subscript is returned. Otherwise, -1 is returned,

52 // indicating that the value was not found in the array.

53 Function Integer binarySearch(string array[], String value,

54 Integer arrayZize)

55 // Variable to hold the subscript of the first element.

56 declare Integer first = 0

57

58 // variable to hold the subscript of the least element.

59 Declare Integer last = arraySize - 1

60

61 //position of the search value

62 Declare Integer position = -1

63

64 // Flag

65 Declare Boolean found = False

66

67 // Variable to hold the subscript of the midpoint

68 declare Integer middle

69

70 While (NOT found) AND (first<= last)

71 // calculate the midpoint

72 Set middle = (first + last) / 2

73

74 /// see if the value is found at the midpoint.....

75 If array(middle) == value then

76 Set found = True

77 Set position = middle

78

79 // Else, if the value is in the lower half....

80 else if array(middle)> value Then

81 set last = middle - 1

82

83 // Else, if the value is in the upper half...

84 Else

85 Set first = middle + 1

86 End If

87 End While

89 // return the position of the item, or -1

90 // if the item was not found,

91 Return position

92 end Function

Program Output

enter a last name to search for.

Lopez [Enter]

The phone number is 555-7772

Do you want to search again? (Y=yes, N=no)

Y[enter]

Enter a last name to search for.

Harrison [enter]

The phone number is 555-0199

Do you want to search again? IY=yes, N=No)

Y (Enter)

Enter a last name to search for ,

Lee (Enter)

lee was not found.

Do you want to search again (Y=yes, N=N0)

N[Enter]

Create a Flowgorithm program as follows.

Include the usual comment lines for Author, Date and Description.

Declare the constant SIZE as an Integer variable, and assign the value 6.

Declare the two String arrays to a size of SIZE, and use individual assignment statements to set their values (names[0] = Hall, etc.). This takes some time to type, but youll be pleased when you get it working!

Remember that you have to declare and assign variables in separate steps.

You will write a function called binarySearch() with three arguments just as specified in line 31. It will return an Integer value named position, which is declared in line 62 and initially set to -1.

Flowgorithm accepts both the C and Visual Basic operators, so you can specify not found as NOT found, or you can specify it as !found

Again, please answer with screenshots from the FLOWGORITHM program...thanks!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Development For Dummies

Authors: Allen G. Taylor

1st Edition

978-0764507526

More Books

Students also viewed these Databases questions

Question

Explain the strength of acid and alkali solutions with examples

Answered: 1 week ago

Question

Introduce and define metals and nonmetals and explain with examples

Answered: 1 week ago