Starting Out with C++ from Control Structures to Objects (9th Edition)
Starting Out with C++ from Control Structures to Objects (9th Edition)
9th Edition
ISBN: 9780134498379
Author: Tony Gaddis
Publisher: PEARSON
bartleby

Concept explainers

bartleby

Videos

Textbook Question
Book Icon
Chapter 20, Problem 1RQE

What is the base case of each of the recursive functions listed in Questions 12, 13, and 14?

Expert Solution & Answer
Check Mark
Program Plan Intro

Base case:

When the problem is solved without performing recursion is called as a base case.

  • In base case, a problem gets solved during its first attempt without getting reiterated to obtain a solution or a problem’s solution could be obtained at the initial stage.
  • When a recursive function solves and returns the result without performing any recursive operation is called as Base case of a problem.

Explanation of Solution

Given code:

12.

//include the necessary headers

#include <iostream>

using namespace std ;

//function prototype

int function(int);

//main method

int main()

{

//variable declaration and definition

int x = 10;

//function call to compute the sum

cout << function(x) << endl;

//return the value to be zero

return 0;

}

//function definition

int function(int num)

{

//validates the number is less than or equal to zero

if (num <= 0)

//return the value to be zero

return 0;

else

//call the function recursively

return function(num-1) + num;

}

Explanation:

The above highlighted code is the base case in the given problem, because the value of number is validated to be zero or less than zero, the function will immediately return zero after computing the result.

13.

//include the necessary headers

#include <iostream>

using namespace std;

//function prototype

void function(int);

//main method

int main()

{

//variable declaration

int x = 10 ;

//function call

function(x);

//return the value to be zero

return 0 ;

}

//method definition that displays the given character

void function(int num)

{

//validates the number is greater than zero

if (num > 0)

{

   

//loop that iterates for the number of times the number that is given

for (int x = 0 ; x < num; x++)

//display the character

cout << '*';

//new line

cout << endl ;

//function call that calls iteratively to display the character in the decremented order

function(num- 1);

}

}

Explanation:

The above highlighted code is the base case for the given code because the code gets executed only when the value of the number that is passed is greater than the zero or else the code will return the zero.

14.

//include the necessary headers

#include <iostream>

#include <string>

using namespace std;

//function protytype that performs the string operations

void function(string, int, int);

//main method

int main()

{

//varible declaration and definition

string mystr = "Hello";

//display the original string

cout << mystr << endl;

//function call that performs string reverse operation

function(mystr , 0 , mystr.size());

//return the value to be zero

return 0;

}

/* function definition that performs the reverse of the string */

void function(string str , int pos, int size)

{

   

//compares the position of the string with its size

if (pos < size)

{

   

//function call that performs the string reverse

function(str, pos+ 1, size);

//display the string in reverse order

cout << str[pos];

}

}

Explanation:

The above highlighted code is the base case for the given code, because the function will perform string operation only when the size and position gets validated and if the condition fails, the control will be returned to the called function.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
How to develop a C program that receives the message sent by the provided program and displays the name and email included in the message on the screen?Here is the code of the program that sends the message for reference: typedef struct {    long tipo;    struct {        char nome[50];        char email[40];    } dados;} MsgStruct; int main() {    int msg_id, status;    msg_id = msgget(1000, 0600 | IPC_CREAT);    exit_on_error(msg_id, "Creation/Connection");    MsgStruct msg;    msg.tipo = 5;    strcpy(msg.dados.nome, "Pedro Silva");    strcpy(msg.dados.email, "pedro@sapo.pt");    status = msgsnd(msg_id, &msg, sizeof(msg.dados), 0);    exit_on_error(status, "Send");    printf("Message sent!\n");}
9. Let L₁=L(ab*aa), L₂=L(a*bba*). Find a regular expression for (L₁ UL2)*L2. 10. Show that the language is not regular. L= {a":n≥1} 11. Show a derivation tree for the string aabbbb with the grammar S→ABλ, A→aB, B→Sb. Give a verbal description of the language generated by this grammar.
14. Show that the language L= {wna (w) < Nь (w) < Nc (w)} is not context free.

Additional Engineering Textbook Solutions

Find more solutions based on key concepts
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
Computational Software for Intelligent System Design; Author: Cadence Design Systems;https://www.youtube.com/watch?v=dLXZ6bM--j0;License: Standard Youtube License