Question

In: Computer Science

STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...

STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int -*mySet: myType -MAX_VALUE = 500000 static const: int -LIMIT = 1000 static const: int +recursionSet() +recursionSet(const recursionSet&) +~recursionSet() +getSetLength() const: int +generateElements(int): void + getElement(int) const: myType +setElement(int, myType): void +readValue(const string) const: int +printSet() const: void +operator == (const recusrionSet&): bool +tak(myType, myType, myType) const: myType +printSeptenary(myType) const: void +squareRoot(myType, myType) const: myType -recSqRoot(myType, myType, myType) const: myType +recursiveSum() const: myType -rSum(int) const: myType +checkParentheses(string) const: bool -recChkPar(string, int, int) const: bool +recursiveInsertionSort(): void -recInsSort(int, int): void -insertInOrder(myType, int, int): voidYou may add additional private functions if needed (but, not for the recursive functions). Note, points will be deducted for especially poor style or inefficient coding. Function Descriptions • The recursionSet() constructor should set the length to 0 and mySet pointer to NULL. • The recusrsionSet(const recursionBucket&) copy constructor should create a new, deep copy from the passed object. • The ~recursionSet() destructor should delete the myType array, set the pointer to NULL, and set the size to 0. • The setElement(int, myValue) function should set an element in the class array at the given index location (over-writing any previous value). The function must include bounds checking. If an illegal index is provided, a error message should be displayed. • The getElement(int) should get and return an element from the passed index. This must include bounds checking. If an illegal index is provided, a error message should be displayed and a 0 returned. • The getSetLength() functions should return the current class array length. • The printSet(int) function should print the formatted class array with the passed number of values per line. Use the following output statement: cout << setw(5) << mySet[i] << " • "; Refer to the sample executions for formatting example. The readValue(string) function should prompt with the passed string and read a number from the user. The function should ensure that the value is 3 1 and £ MAX_VALUE. The function should handle invalid input (via a try/catch block). If an error occurs (out of range or invalid input) an appropriate message should be displayed and the user re- prompted. Example error messages include: cout << "readSetLenth: Sorry, too many " << "errors." << endl; cout << "readSetLenth: Error, value " << cnt << " not between 1 and " << numMax << "." << endl; • Note, three errors is acceptable, but a fourth error should end the function and return 0. The generateList(int) function should dynamically create the array and use the following casting for rand() to fill the array with random values. mySet[i] = static_cast(rand()%LIMIT); • • • The printSeptenary(myType) function should print the passed numeric argument in Septenary (base-7) format. Note, function must be written recursively. The recursiveSum() function will perform a recursive summation of the values in class data set and return the final sum. The function will call the private rSum(int) function (which is recursive). The rSum(int) function accepts the length of the data set and performs a recursive summation. The recursive summation is performed as follows: rSum ( position )= • { array[ 0] array[ position ] + rSum ( position−1) if position = 0 if position > 0 The tak(myType) function should recursively compute the Tak 1 function. The Tak function is defined as follows: tak ( x , y , z) = { z tak ( tak ( x−1, y , z) , tak ( y−1, z , x) , tak ( z −1, x , y ) ) 1 For more information, refer to: http://en.wikipedia.org/wiki/Tak_(function) if y≥ x if y < x• • The squareRoot(myType, myType) function will perform a recursive estimation of the square root of the passed value (first parameter) to the passed tolerance (second parameter). The function will call the private sqRoot(myType,myType,myType) function (which is recursive). The private recSqRoot(myType,myType,myType) function recursively determines an estimated square root. Assuming initially that a = x, the square root estimate can be determined as follows: recSqRoot ( x , a , epsilon) = • • • • • { 2 if ∣ a − x ∣ ≤ epsilon a 2 (a + x) sqRoot x , , epsilon 2 a ( ) if ∣ a 2 − x ∣ > epsilon The recursiveInsertionSort() function should sort the data set array using a recursive insertion sort. The recursiveInsertionSort() function should verify the length is valid and, if so, call the recInsSort() function to perform the recursive sorting (with the first element at 0 and the last element at length-1). The recInsSort(int, int) function should implement the recursive insertion sort. The arguments are the index of the first element and the index of the last element. If the first index is less than that last index, the recursive insertion sort algorithm is follows: ▪ Recursively sort all but the last element (i.e., last-1) ▪ Insert the last element in sorted order from first through last positions To support the insertion of the last element, the insertInOrder() function should be used. The insertInOrder(myType, int, int) function should recursively insert the passed element into the correction position. The arguments are the element, the starting index and the ending index (in that order). The function has 3 operations: ▪ If the element is greater than or equal to the last element in the sorted list (i.e., from first to last). If so, insert the element at the end of the sorted (i.e, mySet[last+1] = element). ▪ If the first is less than the last, insert the last element (i.e., mySet[last]) at the end of the sorted (i.e., mySet[last+1] = mySet[last]) and continue the insertion by recursively calling the insertInOrder() function with the element, first, and last-1 values. ▪ Otherwise, insert the last element (i.e., mySet[last]) at the end of the sorted (i.e., mySet[last+1] = mySet[last]) and set the last value (i.e., mySet[last]) to the passed element. The checkParentheses(string) function should determine if the parentheses in a passed string are correctly balanced. The function should call the private recChkPar(string, int, int) function (which is recursive) The recChkPar(string, int, int) function should determine if the parentheses in a string are correctly balanced. The arguments are the string, an index (initially 0), and a parenthesis level count (initially 0). The index is used to track the current character in the string. The general approach should be as follows: ◦ Identify base case or cases. ◦ Check the current character (i.e., index) for the following use cases: ▪ if str[index] == '(' → what to do then ▪ if str[index] == ')' → what to do then ▪ if str[index] == any other character → what to do then Note, for each case, increment the index and call function recursively.

Solutions

Expert Solution

please hit an upvote

// cs 202 assignment #

// recursion set - provided main

// --------------------------------------------------------------------------

// incldue

#include <iostrea

#include <cstdlib

#include <cmath

#include <string

#include <limits

#include "recursionset.

using namespace st

// --------------------------------------------------------------------------

// main program to test the class functions

int main

// ---------------------------------------------------------------------------

// declarations and display of simple header

const char *bold = "\033[1m

const char *unbold = "\033[0m"

const char *green = "\033[32m"

const char *red = "\033[31m"

const char *underline = "\033[4m"

string bars = "

bars.append(60, '-')

cout << end

cout << bold << underline << "cs 202 – recursion set program" <

unbold << endl << endl

// --------------------------------------------------------------------------

// test recursive ackerman() function

cout << bars << end

cout << "tak function:" << endl << endl

recursionset <long int> tst

cout << " tak(18,12,6): " << tst1.tak(18,12,6) << end

cout << " tak(10,7,5): " << tst1.tak(10,7,5) << endl

cout << " tak(70,60,54): " << tst1.tak(70,60,54) << endl

cout << " tak(70,60,52): " << tst1.tak(70,60,52) << endl

cout << " tak(70,60,53): " << tst1.tak(70,60,53) << endl

cout << " tak(70,60,51): " << tst1.tak(70,60,51) << endl

cout << " tak(23,16,5): " << tst1.tak(23,16,5) << endl

// ---------------------------------------------------------------------------

// test square root function

cout << endl << end

cout << bars << endl

cout << "square root function:" << endl << endl

const double epsilon = 0.000

double num1 = 25.

double num2 = 2.0

double num3 = 6561.0

double num4 = 39871.0

double usernum = 0.0

recursionset <double> tst

cout << "square root of " << num1 << " is

<< tst2.squareroot(num1, epsilon) << endl

cout << "square root of " << num2 << " is

<< tst2.squareroot(num2, epsilon) << endl

cout << "square root of " << num3 << " is

<< tst2.squareroot(num3, epsilon) << endl

cout << "square root of " << num4 << " is

<< tst2.squareroot(num4, epsilon) << endl

cout << end

string pmt1 = "enter number: "

usernum = static_cast<double>(tst2.readvalue(pmt1))

if (usernum >

cout << "square root of " << usernum << " is

<< tst2.squareroot(usernum, epsilon) << endl

// --------------------------------------------------------------------------

// test recursive sum function

cout << endl << end

cout << bars << endl

cout << "recursive sum function:" << endl << endl

recursionset <int> tst

cout << "-------" << endl << "set #1:" << end

tst3.generateelements(15)

tst3.printset(8)

cout << endl << endl

cout << "the sum is: " << tst3.recursivesum() << endl

cout << endl

cout << "-------" << endl << "set #2:" << end

tst3.generateelements(75)

tst3.printset(8)

cout << endl << endl

cout << "the sum is: " << tst3.recursivesum() << endl

// --------------------------------------------------------------------------

// test recursive sort function

cout << endl << end

cout << bars << endl

cout << "recursive insertion sort:" << endl << endl

recursionset <float> tstfl

cout << "------------------" << endl << "set #2 (sorted):" << end

tst3.recursiveinsertionsort()

tst3.printset(8)

cout << endl << end

cout << "------------------" << endl << "set #3 (unsorted):" << endl

tstflt.generateelements(12)

for (int i=0; i<12; i++

tstflt.setelement(i, tstflt.getelement(i)+0.5)

tstflt.printset(8)

cout << endl << endl

cout << "------------------" << endl << "set #3 (sorted):" << endl

tstflt.recursiveinsertionsort()

tstflt.printset(8)

// --------------------------------------------------------------------------

// test copy constructor

// copy previous tst3 object into tst4 object

cout << endl << end

cout << bars << endl

cout << "copy constructor test:" << endl

recursionset <int> tst4(tst3

cout << end

if (tst3 == tst4

cout << "copy constructor succeeded." << endl

els

cout << "copy constructor failed." << endl

cout << end

tst4.setelement(73, 0); // erro

tst4.setelement(42, 1); // erro

tst4.setelement(3, 2); // modify the cop

tst4.recursiveinsertionsort()

cout << endl << "modified list (16 replaced with 2):" << end

tst4.printset(8)

cout << endl << end

if (tst3 == tst4

cout << "error, copy of set not modified." << endl

els

cout << "success, copy of set modified." << endl; // it should be modifie

// --------------------------------------------------------------------------

// test recursive printseptenary() function

cout << endl << end

cout << bars << endl

cout << "septenary function:" << endl << endl

recursionset <long long> tst

int num5 = 0

string pmpt5 = "enter integer value "

int snum1 = 123, snum2=234, snum3=1200000

cout << "septenary value of " << snum1 << ":

tst5.printseptenary(snum1)

cout << endl

cout << "septenary value of " << snum2 << ": "

tst5.printseptenary(snum2)

cout << endl

cout << "septenary value of " << snum3 << ": "

tst5.printseptenary(snum3)

cout << endl << endl

num5 = tst5.readvalue(pmpt5

if (num5 > 0)

cout << "septenary value of " << num5 << ": "

tst5.printseptenary(num5)

// --------------------------------------------------------------------------

// test parentheses checking functio

cout << endl << end

cout << bars << endl

cout << "check parentheses function" << endl <<endl

recursionset <string> tst

string parens[] = { "(()()())", // go

"if ((x ==y) && (z==q))", // goo

"( ( ( ) ) ( ( ( ) ) ) )", // goo

"( ( (asdf) ) ( ( ( ) ) ) )", // goo

"( ( ( ) )", // ba

")(", // ba

"( ( !fasle ) )", // goo

"if ((x ==y) && (z==q)", // ba

"if () && () else ())", // ba

"if (() && ()" // ba

}

int parenslen = sizeof(parens) / sizeof(parens[0])

// loop to check all provided strin

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

cout << "the parentheses in string: " << parens[i]

if (tst6.checkparentheses(parens[i])

cout << green << " : is correctly balanced." <

unbold << endl

els

cout << red << " : is not correctly balanced." <

unbold << endl

// --------------------------------------------------------------------------

// done..

cout << end

cout << bars << endl

return

// ====================================================================please hit an upvo

// cs 202 assignment #

// recursion set - provided main

// --------------------------------------------------------------------------

// incldue

#include <iostrea

#include <cstdlib

#include <cmath

#include <string

#include <limits

#include "recursionset.

using namespace st

// --------------------------------------------------------------------------

// main program to test the class functions

int main

// ---------------------------------------------------------------------------

// declarations and display of simple header

const char *bold = "\033[1m

const char *unbold = "\033[0m"

const char *green = "\033[32m"

const char *red = "\033[31m"

const char *underline = "\033[4m"

string bars = "

bars.append(60, '-')

cout << end

cout << bold << underline << "cs 202 – recursion set program" <

unbold << endl << endl

// --------------------------------------------------------------------------

// test recursive ackerman() function

cout << bars << end

cout << "tak function:" << endl << endl

recursionset <long int> tst

cout << " tak(18,12,6): " << tst1.tak(18,12,6) << end

cout << " tak(10,7,5): " << tst1.tak(10,7,5) << endl

cout << " tak(70,60,54): " << tst1.tak(70,60,54) << endl

cout << " tak(70,60,52): " << tst1.tak(70,60,52) << endl

cout << " tak(70,60,53): " << tst1.tak(70,60,53) << endl

cout << " tak(70,60,51): " << tst1.tak(70,60,51) << endl

cout << " tak(23,16,5): " << tst1.tak(23,16,5) << endl

// ---------------------------------------------------------------------------

// test square root function

cout << endl << end

cout << bars << endl

cout << "square root function:" << endl << endl

const double epsilon = 0.000

double num1 = 25.

double num2 = 2.0

double num3 = 6561.0

double num4 = 39871.0

double usernum = 0.0

recursionset <double> tst

cout << "square root of " << num1 << " is

<< tst2.squareroot(num1, epsilon) << endl

cout << "square root of " << num2 << " is

<< tst2.squareroot(num2, epsilon) << endl

cout << "square root of " << num3 << " is

<< tst2.squareroot(num3, epsilon) << endl

cout << "square root of " << num4 << " is

<< tst2.squareroot(num4, epsilon) << endl

cout << end

string pmt1 = "enter number: "

usernum = static_cast<double>(tst2.readvalue(pmt1))

if (usernum >

cout << "square root of " << usernum << " is

<< tst2.squareroot(usernum, epsilon) << endl

// --------------------------------------------------------------------------

// test recursive sum function

cout << endl << end

cout << bars << endl

cout << "recursive sum function:" << endl << endl

recursionset <int> tst

cout << "-------" << endl << "set #1:" << end

tst3.generateelements(15)

tst3.printset(8)

cout << endl << endl

cout << "the sum is: " << tst3.recursivesum() << endl

cout << endl

cout << "-------" << endl << "set #2:" << end

tst3.generateelements(75)

tst3.printset(8)

cout << endl << endl

cout << "the sum is: " << tst3.recursivesum() << endl

// --------------------------------------------------------------------------

// test recursive sort function

cout << endl << end

cout << bars << endl

cout << "recursive insertion sort:" << endl << endl

recursionset <float> tstfl

cout << "------------------" << endl << "set #2 (sorted):" << end

tst3.recursiveinsertionsort()

tst3.printset(8)

cout << endl << end

cout << "------------------" << endl << "set #3 (unsorted):" << endl

tstflt.generateelements(12)

for (int i=0; i<12; i++

tstflt.setelement(i, tstflt.getelement(i)+0.5)

tstflt.printset(8)

cout << endl << endl

cout << "------------------" << endl << "set #3 (sorted):" << endl

tstflt.recursiveinsertionsort()

tstflt.printset(8)

// --------------------------------------------------------------------------

// test copy constructor

// copy previous tst3 object into tst4 object

cout << endl << end

cout << bars << endl

cout << "copy constructor test:" << endl

recursionset <int> tst4(tst3

cout << end

if (tst3 == tst4

cout << "copy constructor succeeded." << endl

els

cout << "copy constructor failed." << endl

cout << end

tst4.setelement(73, 0); // erro

tst4.setelement(42, 1); // erro

tst4.setelement(3, 2); // modify the cop

tst4.recursiveinsertionsort()

cout << endl << "modified list (16 replaced with 2):" << end

tst4.printset(8)

cout << endl << end

if (tst3 == tst4

cout << "error, copy of set not modified." << endl

els

cout << "success, copy of set modified." << endl; // it should be modifie

// --------------------------------------------------------------------------

// test recursive printseptenary() function

cout << endl << end

cout << bars << endl

cout << "septenary function:" << endl << endl

recursionset <long long> tst

int num5 = 0

string pmpt5 = "enter integer value "

int snum1 = 123, snum2=234, snum3=1200000

cout << "septenary value of " << snum1 << ":

tst5.printseptenary(snum1)

cout << endl

cout << "septenary value of " << snum2 << ": "

tst5.printseptenary(snum2)

cout << endl

cout << "septenary value of " << snum3 << ": "

tst5.printseptenary(snum3)

cout << endl << endl

num5 = tst5.readvalue(pmpt5

if (num5 > 0)

cout << "septenary value of " << num5 << ": "

tst5.printseptenary(num5)

// --------------------------------------------------------------------------

// test parentheses checking functio

cout << endl << end

cout << bars << endl

cout << "check parentheses function" << endl <<endl

recursionset <string> tst

string parens[] = { "(()()())", // go

"if ((x ==y) && (z==q))", // goo

"( ( ( ) ) ( ( ( ) ) ) )", // goo

"( ( (asdf) ) ( ( ( ) ) ) )", // goo

"( ( ( ) )", // ba

")(", // ba

"( ( !fasle ) )", // goo

"if ((x ==y) && (z==q)", // ba

"if () && () else ())", // ba

"if (() && ()" // ba

}

int parenslen = sizeof(parens) / sizeof(parens[0])

// loop to check all provided strin

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

cout << "the parentheses in string: " << parens[i]

if (tst6.checkparentheses(parens[i])

cout << green << " : is correctly balanced." <

unbold << endl

els

cout << red << " : is not correctly balanced." <

unbold << endl

// --------------------------------------------------------------------------

// done..

cout << end

cout << bars << endl

return

// ====================================================================}0;;l;.--};<e;<);{gs;;dddddddddod6;;;l;n--};;{);;;;;;;;;";;;;5;;;l;.--de;)l;;l;;yrrl;;e;)l;);;;l;..--;;;;;;);;l;;;l;t;;;l;.--;;;;l;;;;;;l;3;;;l;.--;"0);;l;;";";"; "2;;;;;0;1;;;l;.---;;;;;;l;1;;l;.--;<l;;";;;;;";.-{().--d;h">>>>m>s--.11te}0;;l;.--};<e;<);{gs;;dddddddddod6;;;l;n--};;{);;;;;;;;;";;;;5;;;l;.--de;)l;;l;;yrrl;;e;)l;);;;l;..--;;;;;;);;l;;;l;t;;;l;.--;;;;l;;;;;;l;3;;;l;.--;"0);;l;;";";"; "2;;;;;0;1;;;l;.---;;;;;;l;1;;l;.--;<l;;";;;;;";.-{().--d;h">>>>m>s--.11nsLen; i++) {

cout << "The parentheses in string: " << parens[i];

if (tst6.checkParentheses(parens[i]))

cout << green << " : is correctly balanced." <<

unbold << endl;

else

cout << red << " : is not correctly balanced." <<

unbold << endl;

}

// ----------------------------------------------------------------------------

// Done...

cout << endl;

cout << bars << endl;

return 0;

}

 

 

Related Solutions

STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop...
STRICT DOWNVOTE IF NOT DONE FULLY, WILL REPORT ALSO IF COPY PASTED OR MODIFIED ANSWER Develop a class, using templates, to provide functionality for a set of recursive functions. The functions specified as recursive must be written recursively (not iterativly). The UML class specifications are provided below. A main will be provided. Additionally, a make file will need to be developed and submitted. ● Recursion Set Class The recursion set template class will implement the template functions. recursionSet -length: int...
NON PLAGIARISED ANSWER PLEASE OR I DOWNVOTE AND REPORT. Word limit is 500 Your company has...
NON PLAGIARISED ANSWER PLEASE OR I DOWNVOTE AND REPORT. Word limit is 500 Your company has decided to offshore outsource a $50 million project to an experienced, reputable firm in India. This is the first offshore outsourcing project of significant size that your company has run. What steps should your company take to minimize the potential for problems? You should mention at least 8 steps or recommendations. (Hard, 8 marks)
Essay. Minimum of 300 words. Avoid copy-pasted answer. Describe how Real Estate Investment Trust (REIT) works...
Essay. Minimum of 300 words. Avoid copy-pasted answer. Describe how Real Estate Investment Trust (REIT) works and its relationship to the capital markets. Can it be considered as an equity instrument or a debt instrument, why?
Answer as soon as possible!!! Code must be done with Python Develop a basic File Transfer...
Answer as soon as possible!!! Code must be done with Python Develop a basic File Transfer Protocol (FTP) application that transmits files between a client and a server using Python. Your programs should implement four FTP commands: (1) change directory (cd), (2) list directory content (ls), (3) copy a file from client to a server (put) and (4) copy a file from a server to a client (get). Implement two versions of the program: one that uses stock TCP for...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT