In: Computer Science
Problem:
Write a C++ program that will implement and test the five functions described below
that use pointers and dynamic memory allocation.
The Functions:
You will write the five functions described below. Then you will call them from the main
function, to demonstrate their correctness.
1. minimum: takes an int array and the array's size as arguments. It should
return the minimum value of the array elements. Do not use square brackets
anywhere in the function, not even the parameter list (use pointers
instead).
2. swapTimesTen: The following function uses reference parameters. Rewrite the
function so it uses pointers instead of reference variables. When you test this
function from the main program, demonstrate that it changes the values of the
variables passed into it.
int swapTimesTen (int &x, int &y)
{
int temp = x;
x = y * 10;
y = temp * 10;
return x + y;
}
3. doubleArray: takes an int array and the array's size as arguments. It should
create a new array that is twice the size of the argument array. The function
should copy the contents of the argument array to the first half of the new array,
and the contents of the argument array each multiplied by 2 to the second half
of the new array. The function should return a pointer to the new array.
!
4. subArray: takes an int array, a start index and a length as arguments. It
creates a new array that is a copy of the elements from the original array
starting at the start index, and has length equal to the length argument. For
example, subArray(aa,5,4) would return a new array containing only the
elements aa[5], aa[6], aa[7], and aa[8]. The function should return a pointer to
the new array. Do not call any other functions from this function. Hint: modify
the code from duplicateArray.
5. subArray2: takes an int array, a start index and a length as arguments. It
behaves exactly like subArray, however, you must define subArray2 as follows:
Add the code for the definition of the duplicateArray function from the lecture
slides for Unit 3 (or from the textbook) to your program. Add the code for the
subArray2 function given below to your program. Fill in the blanks with
expressions so that the function subArray2 behaves as the first subArray.
int *subArray2 (int *array, int start, int length) {
int *result = duplicateArray(__________, ___________);
return result;
}
DO NOT alter duplicateArray, DO NOT alter subArray2 as defined above.
int minimum(int *arr, int size) { int i = 0; int min = *arr; arr++; i++: while(i < size) { if(*arr < min) { min = *arr; } arr++; i++; } return min; } int swapTimesTen (int *x, int *y) { int temp = *x; *x = (*y) * 10; *y = temp * 10; return *x + *y; } int* doubleArray(int *arr, int size) { int *result = new int[2*size]; for(int i=0; i<size; i++) { result[i] = arr[i]; } for(int i=0; i<size; i++) { result[size + i] = 2*arr[i]; } return result; } int* subArray(int *arr, int start, int length) { int *result = new int[length]; for(int i=0; i<length; i++) { result[i] = arr[i + start]; } return result; } int* subArray2(int *arr, int start, int length) { int *result = duplicateArray(arr + start, length); return result; }