Question #40125

Write, compile, execute, and test a program that uses the function templates
Square(),Power(),and Find() of Exercises 1,2,and 3.
1. Write a function template Square()that returns the square of its only argument.
2. Write a function template Power() that takes two arguments.The first argument
should be of arbitrary type. The second argument is an integer. The function
should return the first argument raised to the power indicated by its second argu-
ment.The return type should be that of its first argument.
3. Write a function template Find() that takes two arguments and returns an inte-
ger.The first argument is an array of arbitrary type.The second argument is an
ordinary variable of the same type as the first argument.The function should re-
turn the array subscript of the first array element that exceeds the second argu-
ment.If no such element is found,the function should return –1.

Expert's answer

#include<iostream>

#include <cstdlib> // system

template <typename T>

T Square(T value)

{

return value*value;

}

template <typename T>

T Power(T value, int i)

{

int const_value = value;

for (int j = 0; j < i - 1; j++)

value *= const_value;

return value;

}

template <typename T>

int Find(T array[], T element, int size_of_array)

{

bool exceeds_or_no = false;

int i = 0;

for (i = 0; i < size_of_array; i++)

if (array[i] > element) { exceeds_or_no = true; break; }

if (exceeds_or_no) return i;

else

return -1;

}

using namespace std;

int main()

{

int size_of_array = 0;

int value; int power;

cout<<"Enter value"<<endl;

cin>>value;

cout<<"value ^2 = "<<Square(value)<<endl;

cout<<"Enter power"<<endl;

cin>>power;

cout<<"value ^3 = "<<Power(value, power)<<endl;

cout<<"Enter size of array : "<<endl;

cin>>size_of_array;

int *array = new int[size_of_array];

cout<<"Enter elements of arrays : "<<endl;

for (int i = 0; i < size_of_array; i++)

cin>>array[i];

cout<<"Enter element"<<endl;

cin>>value;

cout<<"Array subscript : "<<Find(array, value , size_of_array)<<endl;

system("pause");

return 0;

}

#include <cstdlib> // system

template <typename T>

T Square(T value)

{

return value*value;

}

template <typename T>

T Power(T value, int i)

{

int const_value = value;

for (int j = 0; j < i - 1; j++)

value *= const_value;

return value;

}

template <typename T>

int Find(T array[], T element, int size_of_array)

{

bool exceeds_or_no = false;

int i = 0;

for (i = 0; i < size_of_array; i++)

if (array[i] > element) { exceeds_or_no = true; break; }

if (exceeds_or_no) return i;

else

return -1;

}

using namespace std;

int main()

{

int size_of_array = 0;

int value; int power;

cout<<"Enter value"<<endl;

cin>>value;

cout<<"value ^2 = "<<Square(value)<<endl;

cout<<"Enter power"<<endl;

cin>>power;

cout<<"value ^3 = "<<Power(value, power)<<endl;

cout<<"Enter size of array : "<<endl;

cin>>size_of_array;

int *array = new int[size_of_array];

cout<<"Enter elements of arrays : "<<endl;

for (int i = 0; i < size_of_array; i++)

cin>>array[i];

cout<<"Enter element"<<endl;

cin>>value;

cout<<"Array subscript : "<<Find(array, value , size_of_array)<<endl;

system("pause");

return 0;

}

## Comments

Assignment Expert18.03.14, 17:31Questions in this section are answered for free. We work on all questions

and publish answers after verification. There is no guarantee of answering

certain question but we are doing our best. Although if you have serious

assignment that requires large amount of work and hence cannot be done for

free you can submit it as assignment and our experts will surely assist you.

Mary18.03.14, 13:57Why not??

## Leave a comment