Answer to Question #315170 in C++ for khan

Question #315170

Implement a class Sequence to store a sequence of non-negative integer values, and the length

of the sequence. The class has the following private data members:

1. int length – the length of the sequence

2. int *pseq – a pointer to a dynamic integer array holding sequence of integers

The class shall provide the following public methods:

1. Sequence() – a default constructor that initializes length to 10 and store the sequence of

all zeros in an array.

2. Sequence(int lengthVal, int n1=0,int n2=0,int n3=0, int n4=0, int n5=0, int n6=0, int n7=0,

int n8=0, int n9=0, int n10=0) – another parameterized constructor should initialize the

length and array to sequence values passed in the arguments.

3. Sequence(Sequence &s) – a copy constructor that creates a copy of a Sequence object.

4. int getLength() – a getter for length

5. int* getSeq() – a getter for the sequence of numbers

6. void Sort(int n) – a function that sorts the first n elements in the sequence array. You

cannot use Bubble Sort Algorithm


1
Expert's answer
2022-03-22T09:06:54-0400
#include <iostream>
#include <cstdlib>
using namespace std;


class Sequence {
private:
    int length;
    int *pseq;


public:
    Sequence();
    Sequence(int lengthVal, int n1=0,int n2=0,int n3=0, int n4=0, int n5=0, int n6=0, int n7=0,
             int n8=0, int n9=0, int n10=0);
    Sequence(Sequence &s);
    ~Sequence();
    int getLength() { return length; }
    int* getSeq()   {return pseq; }
    void Sort(int n);
};


Sequence::Sequence() 
{
    length = 10;
    pseq = new int[length];
    for (int i=0; i<length; i++) {
        pseq[i] = 0;
    }
}


Sequence::Sequence(int lengthVal, int n1,int n2,int n3, int n4, int n5, int n6, int n7,
                   int n8, int n9, int n10)
{
    length = lengthVal;
    if (length < 0) {
        cerr << "Error: length is negative" << endl;
        exit(1);
    }
    pseq = new int[length];
    for (int i=0; i<length; i++) {
        pseq[i] = 0;
    }
    if (length > 0)
        pseq[0] = n1;
    if (length > 1)
        pseq[1] = n2;
    if (length > 2)
        pseq[2] = n3;
    if (length > 3)
        pseq[3] = n4;
    if (length > 4)
        pseq[4] = n5;
    if (length > 5)
        pseq[5] = n6;
    if (length > 6)
        pseq[6] = n6;
    if (length > 6)
        pseq[6] = n7;
    if (length > 7)
        pseq[7] = n8;
    if (length > 8)
        pseq[8] = n9;
    if (length > 9)
        pseq[9] = n10;
}             


Sequence::Sequence(Sequence &s)
{
    length = s.length;
    pseq = new int[length];
    for (int i=0; i<length; i++) {
        pseq[i] = s.pseq[i];
    }
}


Sequence::~Sequence() {
    delete [] pseq;
}


void Sequence::Sort(int n) {
    int i_min;


    for (int i=0; i<n-1; i++) {
        i_min = i;
        for (int j=i+1; j<n; j++) {
            if (pseq[j] < pseq[i_min]) {
                i_min = j;
            }
        }
        if (i_min != i) {
            int tmp = pseq[i];
            pseq[i] = pseq[i_min];
            pseq[i_min] = tmp;
        }
    }
}


int main() {
    int n1=10, n2=4, n3=8, n4=3, n5=12;
    Sequence s(8, n1, n2, n3, n4, n5);


    s.Sort(6);
    int *p = s.getSeq();


    for (int i=0; i<s.getLength(); i++) {
        cout << p[i] << " ";
    }
    cout << endl;


    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog