Problem Solving with C++ (9th Edition)
Problem Solving with C++ (9th Edition)
9th Edition
ISBN: 9780133591743
Author: Walter Savitch
Publisher: PEARSON
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 14, Problem 2P

Explanation of Solution

Recursive version of the function “indexOfSmallest”:

The recursive version of the function “indexOfSmallest” is shown below:

/* Recursive function definition for compute index of smallest element */

int indexOfSmallest(const int a[], int startIndex, int numberUsed)

{

    /* Assign minimum to array of starting index */

    int min = a[startIndex];

   /* If starting index is equal to "numberUsed-1", then */

    if(startIndex == numberUsed - 1)

        /* Returns the starting index */

        return startIndex;

   /* Otherwise recursively call the function "indexOfSmallest" */

   int indexOfMin = indexOfSmallest(a, startIndex+1, numberUsed);

   /* If the value of "min" is greater than "a[indexOfMin]" */

    if(min > a[indexOfMin])

        /* Returns index of minimum value */

        return indexOfMin;

    //Otherwise

    else

        /* Returns the starting index */

        return startIndex;

}

Complete executable program code:

The modified complete code is implemented for given function is given below:

//Header file

#include <iostream>

//Function declaration

void fillArray(int a[], int size, int& numberUsed);

//Precondition: size is the declared size of the array a.

//Postcondition: numberUsed is the number of values stored in a.

//a[0] through a[numberUsed - 1] have been filled with

//nonnegative integers read from the keyboard.

void sort(int a[], int numberUsed);

//Precondition: numberUsed <= declared size of the array a.

//The array elements a[0] through a[numberUsed - 1] have values.

//Postcondition: The values of a[0] through a[numberUsed - 1] have

//been rearranged so that a[0] <= a[1] <= ... <= a[numberUsed - 1].

void swapValues(int& v1, int& v2);

//Interchanges the values of v1 and v2.

int indexOfSmallest(const int a[], int startIndex, int numberUsed);

//Precondition: 0 <= startIndex < numberUsed. Referenced array elements have

//values.

//Returns the index i such that a[i] is the smallest of the values

//a[startIndex], a[startIndex + 1], ..., a[numberUsed - 1].

//Main function

int main( )

{

    //For standard input and output

    using namespace std;

    //Prompt statement

   cout << "This program sorts numbers from lowest to highest.\n";

    //Declare variables

    int sampleArray[10], numberUsed;

    //Call fill array function

    fillArray(sampleArray, 10, numberUsed);

    //Prompt statement

    cout << "Index of minimum number in given array: ";

    //Call the function "indexOfSmallest"

   cout << indexOfSmallest(sampleArray, 0, numberUsed) << endl;

    //Call the function "sort"

    sort(sampleArray, numberUsed);

    //Prompt statement

    cout << "In sorted order the numbers are:\n";

    //Display the sorted number using "for" loop

    for (int index = 0; index < numberUsed; index++)

    cout << sampleArray[index] << " ";

    cout << endl;

    return 0;

}

//Uses iostream:

//Function definition for fill array

void fillArray(int a[], int size, int& numberUsed)

{

    //For standard input and output

    using namespace std;

    //Prompt statement

   cout << "Enter up to " << size << " nonnegative whole numbers.\n" << "Mark the end of the list with a negative number...

Blurred answer
Students have asked these similar questions
15 points Save ARS Consider the following scenario in which host 10.0.0.1 is communicating with an external SMTP mail server at IP address 128.119.40.186. NAT translation table WAN side addr LAN side addr (c), 5051 (d), 3031 S: (e),5051 SMTP B D (f.(g) 10.0.0.4 server 138.76.29.7 128.119.40.186 (a) is the source IP address at A, and its value. S: (a),3031 D: (b), 25 10.0.0.1 A 10.0.0.2. 1. 138.76.29.7 10.0.0.3
6.3A-3. Multiple Access protocols (3). Consider the figure below, which shows the arrival of 6 messages for transmission at different multiple access wireless nodes at times t=0.1, 1.4, 1.8, 3.2, 3.3, 4.1. Each transmission requires exactly one time unit. 1 t=0.0 2 3 45 t=1.0 t-2.0 t-3.0 6 t=4.0 t-5.0 For the CSMA protocol (without collision detection), indicate which packets are successfully transmitted. You should assume that it takes .2 time units for a signal to propagate from one node to each of the other nodes. You can assume that if a packet experiences a collision or senses the channel busy, then that node will not attempt a retransmission of that packet until sometime after t=5. Hint: consider propagation times carefully here. (Note: You can find more examples of problems similar to this here B.] ☐ U ப 5 - 3 1 4 6 2
Just wanted to know, if you had a scene graph, how do you get multiple components from a specific scene node within a scene graph? Like if I wanted to get a component from wheel from the scene graph, does that require traversing still?   Like if a physics component requires a transform component and these two component are part of the same scene node. How does the physics component knows how to get the scene object's transform it is attached to, this being in a scene graph?
Knowledge Booster
Background pattern image
Computer Science
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
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning