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.

//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;
};


//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
Get step-by-step solutions from verified subject matter experts
