Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a function in c++ using for loops: The function must not use any function

ID: 3933562 • Letter: W

Question

Write a function in c++ using for loops:

The function must not use any function templates from the algorithms portion of the Standard C++ library.

bool locateSequence(const string a[], int n, string target, int& begin, int& end);

Find the earliest occurrence in a of one or more consecutive strings that are equal to target; set begin to the position of the first occurrence of target, set end to the last occurrence of target in that earliest consecutive sequence, and return true. If n is negative or if no string in a is equal to target, leave begin and end unchanged and return false. Here's an example:

Notwithstanding each function's behavior described below, all functions that return an int must return 1 if they are passed any bad arguments (e.g. a negative array size, or a position that would require looking at the contents of an element past the last element we're interested in). Unless otherwise noted, passing 0 to the function as the array size is not itself an error; it merely indicates the function should examine no elements of the array.

Explanation / Answer

Please follow the code and comments for description :

CODE :

#include <iostream> // required header files

using namespace std;

bool locateSequence(const string a[], int n, string target, int& begin, int& end); // function declaration

bool locateSequence(const string a[], int n, string target, int& begin, int& end) { // function definiton
  
bool found = false; // locla varaibles
  
if(n <= 0) { // check for the size of the array
return false; // return false
}
  
for(int counter = 0; counter < n; counter++){ // loop over the size of the array
       if((a[counter] == target) && a[(counter + 1)] == target){ // check for the occurrence
           begin = counter; // assign the data
           end = (counter + 1);
           found = true;
           break; // break the loop
       } else if ((a[counter] == target)){ // if found only once
       begin = 1; // return the standard values
       end = 1;
       found = true;      
       } else {
       continue; // else loop over the data
       }
   }
  
   if(found == true) { // check for the flag
   return true;
   } else {
   return false;
   }
}

int main() // driver method
{
string d[9] = {"jon", "daenerys", "samwell", "samwell", "margaery", "margaery", "margaery", "samwell", "samwell"}; // reuired array
int b; // local variables
int e;
bool b1 = locateSequence(d, 9, "samwell", b, e); // returns true and sets b to 2 and e to 3
cout << "Found at " << b << " and " << e << endl; // data to be printed
bool b2 = locateSequence(d, 9, "daenerys", b, e); // returns true and sets b to 1 and e to 1
cout << "Found at " << b << " and " << e << endl; // data to be printed
bool b3 = locateSequence(d, 9, "cersei", b, e); // returns false and leaves b and e unchanged
cout << "Found at " << b << " and " << e << endl; // data to be printed
  
return 0;
}

OUTPUT :

Found at 2 and 3
Found at 1 and 1
Found at 1 and 1

Hope this is helpful.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote