Write a function template for a function that has parameters for a partially filled array and for a value of the base type of the array. If the value is in the partially filled array, then the function returns the index of the first indexed variable that contains the value. If the value is not in the array, the function returns −1. The base type of the array is a type parameter. Notice that you need two parameters to give the partially filled array: one for the array and one for the number of indexed variables used. Also, write a suitable test
Program plan:
- The function template “search” is defined with the three parameters.
- Inside the function definition, the “for” condition will iterate until the “i” value is less than “num” value.
- If “a[i]” is equal to “v” then return “i”, otherwise return -1.
- Inside the function definition, the “for” condition will iterate until the “i” value is less than “num” value.
- Define the main function.
- Declare the required variables and assign the value for those variables.
- Call the “search” function with the arguments.
- Check “i” is equal to “-1” or not.
- If the condition is true, display the search value is not found. Otherwise display the search element position.
The program is used to find the search element in the given array is as follows:
Explanation of Solution
Program:
//include the necessary header file
#include<iostream>
using namespace std;
//definition of template
template<typename T>
//definition of "search" function
int search(T a[], int num, T v)
{
//check the condition
for(int i = 0; i < num; i++)
//check the condition
if(a[i] == v)
//return "i" value
return i;
//return "-1" value
return -1;
}
//definition of main function
int main()
{
//declare and assign the array value
int a[20] = {1, 2, 4, 9, 3, 7, 6, 5, 10, 15};
//declare and assign the value
int num = 10;
int v = 6;
//declare and call the function
int i = search(a, num, v);
//check the condition
if(i == -1)
//display the result
cout<<v<<" is not found in the array\n";
else
//display the result
cout<<v<<" found at index "<<i<<"\n";
//return statement
return 0;
}
Output:
6 found at index 6
Want to see more full solutions like this?
Chapter 17 Solutions
Problem Solving with C++ (10th Edition)
Additional Engineering Textbook Solutions
Introduction to Programming Using Visual Basic (10th Edition)
Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)
Starting Out with Python (4th Edition)
Starting Out with C++ from Control Structures to Objects (8th Edition)
Modern Database Management
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
- The differences between value types and reference types applies to parameters. True Falsearrow_forwardConsider the function void modify(int & x) { x = 10; }Show how to call the modify function so that it sets the integer int i;to 10.arrow_forwardA function template creates definitions of functions that differ only in the type of data they manipulate is it true or falsearrow_forward
- in C++ Write a function that allows you to modify a Planet in the SolarSystem class. You can choose to pass a Planet into this function, or have the function prompt for planet information. Either way, you need to be able to specify the Planet at a specific index to be modified. This is an example of how it could potentially look in the main: // code that declared a SolarSystem the_system// and assigned planetsPlanet p("X", 2000, 4000);int index = 2;the_system.changePlanet(p, index);arrow_forwardWhat must you be sure of when passing a class object to a function template that uses an operator, such as * or >?arrow_forwardWrite a function template that is capable of adding any two numeric values and returning the result.arrow_forward
- Moving Between Rooms - Navigation In this assignment, you will be working with a given "rooms" dictionary and associated constants to create a simple text-based game. Your main task is to develop a function that allows the player to navigate through the rooms based on the given specifications. You need to implement the function found in the starter code to the right The function should take into account the following conditions: If the direction leads to an exit, set the next room to the exit and the message to "Goodbye". If the direction is invalid, set the next room to the current room and the message to "No such direction". If the direction is valid, but you cannot go that way, set the next room to the current room and the message to "You bumped into a wall". If the direction is valid and you can go that way, set the next room to the room in that direction and the message to "Empty". To help you understand how the function will be integrated into the gameplay loop, the following…arrow_forwardIn C/C++, True or False: A variable's type helps define the range of values that can be held by that type. A variable's type helps define the operations that can be performed on that type. A parameter that has a default value must be the first parameter listed in the function's parameter list.arrow_forwardWrite a function in C++ that receives a double array and the number of items stored in the array. The function returns the largest and the smallest items using reference parameters.arrow_forward
- When invoking a function that takes a significant number of arguments, the order in which those parameters are sent in is quite important.arrow_forwardA function template can be overloaded by another function template with the samefunction name. T/Farrow_forwardWhen arrays are supplied to functions as parameters: A They are never passed by reference.B. They are usually passed by reference.C. Arrays cannot be sent as arguments to functions.D. There is no need to supply arrays to functions because they are global by default.arrow_forward
- Microsoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning