Question: I need the following program revised to include vectors instead of dynamic arrays: 1) Replace the private dynamic array with a private vector of integers

I need the following program revised to include vectors instead of dynamic arrays:

1) Replace the private dynamic array with a private vector of integers

2) Remove any unnecessary functions from the new class. Hint: the dynamicArray class has pointers; the BigNumber class does not have pointers.

3) Move the mul function from the main function in file source.cpp to the BigNumber class.

4)Rewrite the mul function to use the private vector of integers to compute the product.

I need the following program revised to include vectors instead of dynamic

//Copyable header file

#pragma once

class dynamicArray

{

public:

const dynamicArray& operator=(const dynamicArray& source);

dynamicArray(int new_size = 16);

dynamicArray(const dynamicArray& source);

~dynamicArray();

int get(int where) const;

int size() const;

void put(int where, int what);

void show() const;

private:

void copy(const dynamicArray& source);

int _size;

int *_elts;

};

arrays: 1) Replace the private dynamic array with a private vector of

integers 2) Remove any unnecessary functions from the new class. Hint: the

//copyable .cpp file

#include

#include

#include "BigNumber.h"

#include

using namespace std;

const dynamicArray& dynamicArray::operator=(const dynamicArray& source)

{

if (this != &source)

{

delete[] _elts;

copy(source);

}

return *this;

}

dynamicArray::dynamicArray(int new_size)

{

_size = new_size;

_elts = new int[_size];

for (int i = 0; i

_elts[i] = 0;

}

dynamicArray::dynamicArray(const dynamicArray& source)

{

copy(source);

}

dynamicArray::~dynamicArray()

{

delete[] _elts;

_elts = nullptr;

_size = -1;

}

void dynamicArray::copy(const dynamicArray& source)

{

_size = source._size;

_elts = new int[_size];

for (int i = 0; i

_elts[i] = source._elts[i];

}

int dynamicArray::get(int where) const

{

assert(0

return _elts[where];

}

int dynamicArray::size() const

{

return _size;

}

void dynamicArray::put(int where, int new_elt)

{

assert(0

_elts[where] = new_elt;

}

void dynamicArray::show() const

{

for (int i = _size - 1; i >= 0; --i)

cout

}

//main or source .cpp copyable code

#include

#include

#include "BigNumber.h"

#include

using namespace std;

dynamicArray mul(const dynamicArray& n1, const dynamicArray& n2)

{

int size1 = n1.size();

int size2 = n2.size();

dynamicArray p12(size1 + size2);

for (int i1 = 0; i1

{

int ni1 = n1.get(i1);

for (int i2 = 0; i2

{

int pi1i2 = ni1 * n2.get(i2) + p12.get(i1 + i2);

if (pi1i2 > 9)

{

int overflow = p12.get(i1 + i2 + 1);

p12.put(i1 + i2 + 1, overflow + pi1i2 / 10);

pi1i2 = pi1i2 % 10;

}

p12.put(i1 + i2, pi1i2);

}

}

return p12;

}

dynamicArray add(const dynamicArray& n1, const dynamicArray& n2)

{

int size1 = n1.size();

int size2 = n2.size();

int size = min(size1, size2);

dynamicArray s12(max(size1, size2) + 1);

for (int i = 0; i

{

int si = n1.get(i) + n2.get(i) + s12.get(i);

if (si > 9)

{

int carry = s12.get(i + 1);

s12.put(i + 1, carry + si / 10);

si = si % 10;

}

s12.put(i, si);

}

for (int i = size; i

{

int si = n1.get(i) + s12.get(i);

s12.put(i, si);

}

return s12;

}

dynamicArray sub(const dynamicArray& n1, const dynamicArray& n2)

{

int size1 = n1.size();

int size2 = n2.size();

int size = min(size1, size2);

dynamicArray d12(max(size1, size2));

for (int i = 0; i

{

int di = n1.get(i) - n2.get(i) - d12.get(i);

if (di

{

int borrow = d12.get(i + 1);

d12.put(i + 1, borrow + 1);

di = di + 10;

}

d12.put(i, di);

}

for (int i = size; i

{

int di = n1.get(i) - d12.get(i);

if (di

{

int borrow = d12.get(i + 1);

d12.put(i + 1, borrow + 1);

di = di + 10;

}

d12.put(i, di);

}

for (int i = size; i

{

int di = 0 - d12.get(i);

if (di

{

int borrow = d12.get(i + 1);

d12.put(i + 1, borrow + 1);

di = di + 10;

}

d12.put(i, di);

}

return d12;

}

int main()

{

dynamicArray n1(3);

dynamicArray n2(3);

n1.put(0, 5);

n1.put(1, 3);

n1.put(2, 1);

n2.put(0, 1);

n2.put(1, 2);

n2.put(2, 8);

dynamicArray p12 = mul(n1, n2);

n1.show();

cout

n2.show();

cout

p12.show();

cout

p12 = mul(n2, n1);

n2.show();

cout

n1.show();

cout

p12.show();

cout

dynamicArray a12 = add(n1, n2);

n1.show();

cout

n2.show();

cout

a12.show();

cout

a12 = add(n2, n1);

n2.show();

cout

n1.show();

cout

a12.show();

cout

dynamicArray d12 = sub(n1, n2);

n1.show();

cout

n2.show();

cout

d12.show();

cout

d12 = sub(n2, n1);

n2.show();

cout

n1.show();

cout

d12.show();

cout

return 0;

}

1 #pragma once 2 class dynamicArray 4 public: 5 const dynamicArray&operator-(const dynamicArray&source); 6 dynamicArray (int new_size 16); 7 dynamicArray(const dynamicArray&source); 8 9 dynamicArray(); int get(int where) const; int size() const; 2 void put(int where, int what); 13 L4 void show() const; 5 private: L6 void copy(const dynamicArray&source); int_size; int _elts; 17 0 21 1 #pragma once 2 class dynamicArray 4 public: 5 const dynamicArray&operator-(const dynamicArray&source); 6 dynamicArray (int new_size 16); 7 dynamicArray(const dynamicArray&source); 8 9 dynamicArray(); int get(int where) const; int size() const; 2 void put(int where, int what); 13 L4 void show() const; 5 private: L6 void copy(const dynamicArray&source); int_size; int _elts; 17 0 21

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!