C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN: 9781337102087
Author: D. S. Malik
Publisher: Cengage Learning
expand_more
expand_more
format_list_bulleted
Concept explainers
Textbook Question
Chapter 2, Problem 4PE
Repeat
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Write just the function count(String s) and write it in JAVA
The goal is to rewrite the function, below, such that passes in a different list of parameters, particularly eliminating the need to pass low and high for each recursive call to binary_search.
defbinary_search(nums,low,high,item):
mid=(low+high)//2iflow>high:returnFalse #The item doesn't exist in the list!elifnums[mid]==item:returnTrue# The item exists in the list!elifitem<nums[mid]:returnbinary_search(nums,low,mid-1,item)else:returnbinary_search(nums,mid+1,high,item)
The new function should be prototyped below. The number of changes between the given version, and the one requested is not significant.
defbinary_search(nums,item):pass# Remove this and fill in with your code
Tip: If you consider that high and low are used to create a smaller version of our problem to be processed recursively, the version requested will do the same thing, just through a different, more Pythonic technique.
Below is a recursive version of binarySearch:int binarySearch(int nums[], int low, int high, int target){ if (low > high) return -1; int mid = (low + high)/2; if (target == nums[mid]) return mid; else if (target < nums[mid]) return binarySearch(nums, low, mid - 1, target); else return binarySearch(nums, mid + 1, high, target);}
Code Analysis ()If we change the first line of code in the function to be “if (low >= high) return -1;”, and we have an array defined as “int nums[] = {2, 3, 5, 7, 8, 10};”, answer the questions below if we called this function with “int index = binarySearch(nums, 0, nums.length - 1, 3);”For each iteration of binarySearch:1) What are the values of low, high, mid, and target variables?
Chapter 2 Solutions
C++ Programming: From Problem Analysis to Program Design
Ch. 2 - 1. Mark the following statements as true or...Ch. 2 - Prob. 2MCCh. 2 - Which of the following is not a reserved word in...Ch. 2 - Prob. 4SACh. 2 - 5. Are the identifiers quizNo1 and quiznol the...Ch. 2 - 6. Evaluate the following expressions. (3,...Ch. 2 - If int x = 10;, int y = 7;, double z = 4.5;, and...Ch. 2 - Prob. 8CPCh. 2 - 9. Suppose that x, y, z, and w are int variables....Ch. 2 - Prob. 10SA
Ch. 2 - Which of the following are valid C++ assignment...Ch. 2 - Write C++ statements that accomplish the...Ch. 2 - Write each of the following as a C++ expression....Ch. 2 - Prob. 14SACh. 2 - Suppose x, y, and z are int variables and wandt...Ch. 2 - 16. Suppose x, y, and z are int variables and x =...Ch. 2 - Suppose a and b are int variables, c is a double...Ch. 2 - 18. Write C++ statements that accomplish the...Ch. 2 - Which of the following are correct C++ statements?...Ch. 2 - Give meaningful identifiers for the following...Ch. 2 - 21. Write C++ statements to do the following....Ch. 2 - Prob. 22SACh. 2 - The following program has syntax errors. Correct...Ch. 2 - Prob. 24SACh. 2 - Prob. 25SACh. 2 - Preprocessor directives begin with which of the...Ch. 2 - 27. Write equivalent compound statements if...Ch. 2 - 28. Write the following compound statements as...Ch. 2 - 29. Suppose a, b, and c are int variables and a =...Ch. 2 - Suppose a, b, and sum are int variables and c is a...Ch. 2 - Prob. 31SACh. 2 - Prob. 32SACh. 2 - Prob. 33SACh. 2 - Prob. 34SACh. 2 - 1. Write a program that produces the following...Ch. 2 - Prob. 2PECh. 2 - Prob. 3PECh. 2 - 4. Repeat Programming Exercise 3 by declaring...Ch. 2 - Prob. 5PECh. 2 - Prob. 6PECh. 2 - 7. Write a program that prompts the user to input...Ch. 2 - Prob. 8PECh. 2 - 9. Write a program that prompts the user to enter...Ch. 2 - 10. Write a program that prompts the user to input...Ch. 2 - 11. Write a program that prompts the capacity, in...Ch. 2 - 12. Write a C++ program that prompts the user to...Ch. 2 - 13. To make a profit, a local store marks up the...Ch. 2 - 14. (Hard drive storage capacity) If you buy a 40...Ch. 2 - 15. Write a program to implement and test the...Ch. 2 - 16. A milk carton can hold 3.78 liters of milk....Ch. 2 - 17. Redo Programming Exercise 16 so that the user...Ch. 2 - Prob. 18PECh. 2 - 19. Write a program that prompts the user to input...Ch. 2 - 20. For each used car a salesperson sells, the...Ch. 2 - 21. Newton's law states that the force, , between...Ch. 2 - 22. One metric ton is approximately 2,205 pounds....Ch. 2 - 23. Cindy uses the services of a brokerage firm to...Ch. 2 - 24. A piece of wire is to be bent in the form of a...Ch. 2 - 25. Repeat Programming Exercise 24, but the wire...Ch. 2 - 26. A room has one door, two windows, and a...Ch. 2 - Prob. 27PECh. 2 - 28. In an elementary school, a mixture of equal...Ch. 2 - 29. A contractor orders, say, 30 cubic yards of...
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Below is a recursive version of binarySearch:int binarySearch(int nums[], int low, int high, int target){ if (low > high) return -1; int mid = (low + high)/2; if (target == nums[mid]) return mid; else if (target < nums[mid]) return binarySearch(nums, low, mid - 1, target); else return binarySearch(nums, mid + 1, high, target);} Code Analysis ()If we change the first line of code in the function to be “if (low >= high) return -1;”, and we have an array defined as “int nums[] = {2, 3, 5, 7, 8, 10};”, answer the questions below if we called this function with “int index = binarySearch(nums, 0, nums.length - 1, 3);”For each iteration of binarySearch:3) If the base case(s) are false, which recursive function call will be made?arrow_forwardBelow is a recursive version of binarySearch:int binarySearch(int nums[], int low, int high, int target){ if (low > high) return -1; int mid = (low + high)/2; if (target == nums[mid]) return mid; else if (target < nums[mid]) return binarySearch(nums, low, mid - 1, target); else return binarySearch(nums, mid + 1, high, target);} Code Analysis ()If we change the first line of code in the function to be “if (low >= high) return -1;”, and we have an array defined as “int nums[] = {2, 3, 5, 7, 8, 10};”, answer the questions below if we called this function with “int index = binarySearch(nums, 0, nums.length - 1, 3);”For each iteration of binarySearch:2) Will a base case be true? If so, what value is being returnedarrow_forwardWrite a function (in MATLAB) with header [b] = myDec2Bin(d) where d is a positive integer in decimal and b is the binary representation of d. The output variable, b, should be a row vector of ones and zeros and the leading term must be a 1 unless the decimal input value is 0. Thank you! Test Cases: >> b = myDec2Bin(23) b = 1 0 1 1 1 >> b = myDec2Bin(38) b = 1 0 0 1 1 0arrow_forward
- Write a program to reverse the words of a string. Implement a function reverse () that reverses the string between indexes i and j inclusively. Prototype of the function is given below. void reverse (char *str, int i, int j)arrow_forwardBelow,enter code to complete implementation of a recursive function sum_all_integers(), which takes an input n and adds all intergers preceding it, up to n: add_all_integers(n):arrow_forwardJava Code: Below is Parser.java and there are errors. Look at the errors carefully and please fix those errors and show the fixed code. Parser.java import java.text.ParseException; import java.util.LinkedList; import java.util.List; import mypack.Token.TokenType; public class Parser { private TokenHandler tokenHandler; private LinkedList<Token> tokens; public Parser(LinkedList<Token> tokens) { this.tokenHandler = new TokenHandler(tokens); this.tokens = tokens; } public boolean AcceptSeparators() { boolean foundSeparator = false; while (tokenHandler.MoreTokens()) { Token currentToken = tokenHandler.getCurrentToken(); if (currentToken.getType() == Token.TokenType.NEWLINE || currentToken.getType() == Token.TokenType.SEMICOLON) { tokenHandler.consumeMatchedToken(); foundSeparator = true; } else { break; } } return foundSeparator; }…arrow_forward
- Given the following function, what happens if a[] contains just one element that doesn't match val? int binarySearch(int a[], int first, int last, int val){ if (first > last) return -1; int middle = (first + last) / 2; if (a[middle] == val) return middle; if (a[middle] < val) return binarySearch(a, middle+1, last, val); else return binarySearch(a, first, middle-1, val);} Group of answer choices binarySearch never calls itself again and terminates (recursion never happens) binarySearch calls itself once then terminates (recursion happens once) binarySearch calls itself twice then terminates (recursion happens twice) binarySearch calls itself 3 times then terminates (recursion happens 3 times)arrow_forwardin kotlin, Write two versions of the recursive summation function (that is, take an int parameter n and calculate the sum of all integers from 1 to n). One version should use a block body, and the other should use an expression body. Test the functions using a main()arrow_forwardInterpreter.java is missing these methods in the code so make sure to add them: -print, printf: Exist, marked as variadic, call Java functions -getline and next: Exist and call SplitAndAssign -gsub, match, sub, index, length, split, substr, tolower, toupper: Exist, call Java functions, correct return Below is interpreter.java import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class Interpreter { private HashMap<String, InterpreterDataType> globalVariables; private HashMap<String, FunctionDefinitionNode> functions; private class LineManager { private List<String> lines; private int currentLineIndex; public LineManager(List<String> inputLines) { this.lines = inputLines; this.currentLineIndex = 0; } public boolean splitAndAssign() { if (currentLineIndex < lines.size()) { String currentLine = lines.get(currentLineIndex);…arrow_forward
- Write a Lisp function called reverse that recursively reverses a string. In order to put the recursive call at the end of the function, do it this way: concatenate the last character in the string with the result of making a recursive call and sending everything *but* the last letter. Test your function with this code and paste both the code and the output into the window (reverse "")(reverse "a")(reverse "ab")(reverse "abc")(reverse "abcd")arrow_forwardConsider the following recursive function: def rec1(aList,first,last): if first==last: return aList[first] else: return aList[last]*rec1(aList,first,last-1) Show the output of the following call (show your work and all recursive calls): print(rec1([1,2,3,4,5,6,7],3,5))? describe the task of the rec1 function.arrow_forward(Program) Write a program that tests the effectiveness of the rand() library function. Start by initializing 10 counters, such as zerocount, onecount, twocount, and so forth, to 0. Then generate a large number of pseudorandom integers between 0 and 9. Each time 0 occurs, increment zerocount; when 1 occurs, increment onecount; and so on. Finally, display the number of 0s, 1s, 2s, and so on that occurred and the percentage of time they occurred.arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Computational Software for Intelligent System Design; Author: Cadence Design Systems;https://www.youtube.com/watch?v=dLXZ6bM--j0;License: Standard Youtube License