check the modifed code now you will get all operations done.
terminal will display add, subtract, multiply and div operation and dounday condition too.
#include
using namespace std;
class Array
{
private:
int start;
int end;
int *array;
public:
Array(int n);
Array(int n, int m);
int &operator[](int index);
Array &operator=(Array a);
bool operator==(Array &a);
bool operator!=(Array &a);
friend ostream &operator<<(ostream &out, Array &a);
friend Array &operator+(Array &a, Array&b);
friend Array &operator-(Array &a, Array&b);
friend Array &operator*(Array &a, Array&b);
friend Array &operator/(Array &a, Array&b);
};
Array::Array(int n)
{
start = 0;
end = n-1;
array = new int[n];
for (int i = 0; i < n; i++)
array[i] = i+1;
}
Array::Array(int n, int m)
{
start = n;
end = m-1;
array = new int[m-n];
for (int i = 0; i < m-n; i++)
array[i] = start + i;
}
int &Array::operator[](int index)
{
if (index >= start && index <= end)
{
return (array[index-start]);
}
cout << "Error: Index out of bounds." << endl;
int temp = 0;
return temp;
//return *array;
}
Array &Array::operator=(Array a)
{
start = a.start;
end = a.end;
for(int i = 0; i < end - start; ++i)
{
array[i] = a.array[i];
}
return *this;
}
bool Array::operator==(Array &a)
{
for(int i = 0; i < end - start; ++i)
{
if(array[i] != a.array[i])
return false;
}
return true;
}
bool Array::operator!=(Array &a){
return *this == a;
}
ostream &operator<<(ostream &out, Array &b)
{
for(int i = 0; i < b.end - b.start; ++i)
{
out << "(" << i + b.start << ")" << b.array[i] << " ";
}
return out;
}
Array &operator+(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] + b.array[i];
}
return arr;
}
Array &operator-(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] - b.array[i];
}
return arr;
}
Array &operator*(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] * b.array[i];
}
return arr;
}
Array &operator/(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
if (a.array[i]!=0)
arr.array[i] = b.array[i] / a.array[i];
}
return arr;
}
int main()
{
Array test(10);
Array Ary1(10,25);
Array Ary2(-5,10);
Array Ary3(15,30);
int i;
int j;
for (i = 0; i < 10; i++)
test[i] = i+1;
cout << "Test array output" << endl;
for (i = 0; i < 10; i++)
cout << test[i] << " ";
cout << endl;
i = -5;
while (i < 10)
{
Ary2[i] = i*2;
i++;
}
cout << " ";
cout << "Ary2 array otuput" << endl;
for (i = -5; i < 10; i++)
cout << Ary2[i] << " ";
cout << endl;
i = 10; j = -5;
while ( i < 25 )
{ Ary1[ i ] = i*100;
Ary2[j] = j * 200;
i++; j++;
};
cout << "Ary1 array output" << endl;
cout << Ary1 << endl;
cout << endl;
cout << " ";
cout << "Ary2 array output" << endl;
cout << Ary2 << endl;
cout << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] + Ary2[i+-5];
cout << "Ary3 array Addition output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] - Ary2[i+-5];
cout << "Ary3 array Subtraction output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] * Ary2[i+-5];
cout << "Ary3 array Multiply output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary2[i+-5]/Ary1[i+10];
cout << "Ary3 array Division output" << endl;
cout << Ary3 << endl;
cout << " ";
cout << "Test boundary conditions" << endl;
Ary1[8] = 100;
Ary1[16] = 200;
i = 100;
cout << Ary1[i] << endl;
return 0;
}
Solution
check the modifed code now you will get all operations done.
terminal will display add, subtract, multiply and div operation and dounday condition too.
#include
using namespace std;
class Array
{
private:
int start;
int end;
int *array;
public:
Array(int n);
Array(int n, int m);
int &operator[](int index);
Array &operator=(Array a);
bool operator==(Array &a);
bool operator!=(Array &a);
friend ostream &operator<<(ostream &out, Array &a);
friend Array &operator+(Array &a, Array&b);
friend Array &operator-(Array &a, Array&b);
friend Array &operator*(Array &a, Array&b);
friend Array &operator/(Array &a, Array&b);
};
Array::Array(int n)
{
start = 0;
end = n-1;
array = new int[n];
for (int i = 0; i < n; i++)
array[i] = i+1;
}
Array::Array(int n, int m)
{
start = n;
end = m-1;
array = new int[m-n];
for (int i = 0; i < m-n; i++)
array[i] = start + i;
}
int &Array::operator[](int index)
{
if (index >= start && index <= end)
{
return (array[index-start]);
}
cout << "Error: Index out of bounds." << endl;
int temp = 0;
return temp;
//return *array;
}
Array &Array::operator=(Array a)
{
start = a.start;
end = a.end;
for(int i = 0; i < end - start; ++i)
{
array[i] = a.array[i];
}
return *this;
}
bool Array::operator==(Array &a)
{
for(int i = 0; i < end - start; ++i)
{
if(array[i] != a.array[i])
return false;
}
return true;
}
bool Array::operator!=(Array &a){
return *this == a;
}
ostream &operator<<(ostream &out, Array &b)
{
for(int i = 0; i < b.end - b.start; ++i)
{
out << "(" << i + b.start << ")" << b.array[i] << " ";
}
return out;
}
Array &operator+(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] + b.array[i];
}
return arr;
}
Array &operator-(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] - b.array[i];
}
return arr;
}
Array &operator*(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
arr.array[i] = a.array[i] * b.array[i];
}
return arr;
}
Array &operator/(Array &a, Array&b)
{
Array arr(a.end - a.start);
for(int i = 0; i < a.end - a.start; ++i)
{
if (a.array[i]!=0)
arr.array[i] = b.array[i] / a.array[i];
}
return arr;
}
int main()
{
Array test(10);
Array Ary1(10,25);
Array Ary2(-5,10);
Array Ary3(15,30);
int i;
int j;
for (i = 0; i < 10; i++)
test[i] = i+1;
cout << "Test array output" << endl;
for (i = 0; i < 10; i++)
cout << test[i] << " ";
cout << endl;
i = -5;
while (i < 10)
{
Ary2[i] = i*2;
i++;
}
cout << " ";
cout << "Ary2 array otuput" << endl;
for (i = -5; i < 10; i++)
cout << Ary2[i] << " ";
cout << endl;
i = 10; j = -5;
while ( i < 25 )
{ Ary1[ i ] = i*100;
Ary2[j] = j * 200;
i++; j++;
};
cout << "Ary1 array output" << endl;
cout << Ary1 << endl;
cout << endl;
cout << " ";
cout << "Ary2 array output" << endl;
cout << Ary2 << endl;
cout << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] + Ary2[i+-5];
cout << "Ary3 array Addition output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] - Ary2[i+-5];
cout << "Ary3 array Subtraction output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary1[i+10] * Ary2[i+-5];
cout << "Ary3 array Multiply output" << endl;
cout << Ary3 << endl;
cout << " ";
for (i=0;i<14;i++)
Ary3[i+15] = Ary2[i+-5]/Ary1[i+10];
cout << "Ary3 array Division output" << endl;
cout << Ary3 << endl;
cout << " ";
cout << "Test boundary conditions" << endl;
Ary1[8] = 100;
Ary1[16] = 200;
i = 100;
cout << Ary1[i] << endl;
return 0;
}

check the modifed code now you will get all operations done.termin.pdf

  • 1.
    check the modifedcode now you will get all operations done. terminal will display add, subtract, multiply and div operation and dounday condition too. #include using namespace std; class Array { private: int start; int end; int *array; public: Array(int n); Array(int n, int m); int &operator[](int index); Array &operator=(Array a); bool operator==(Array &a); bool operator!=(Array &a); friend ostream &operator<<(ostream &out, Array &a); friend Array &operator+(Array &a, Array&b); friend Array &operator-(Array &a, Array&b); friend Array &operator*(Array &a, Array&b); friend Array &operator/(Array &a, Array&b); }; Array::Array(int n) { start = 0; end = n-1; array = new int[n]; for (int i = 0; i < n; i++) array[i] = i+1; } Array::Array(int n, int m) { start = n; end = m-1;
  • 2.
    array = newint[m-n]; for (int i = 0; i < m-n; i++) array[i] = start + i; } int &Array::operator[](int index) { if (index >= start && index <= end) { return (array[index-start]); } cout << "Error: Index out of bounds." << endl; int temp = 0; return temp; //return *array; } Array &Array::operator=(Array a) { start = a.start; end = a.end; for(int i = 0; i < end - start; ++i) { array[i] = a.array[i]; } return *this; } bool Array::operator==(Array &a) { for(int i = 0; i < end - start; ++i) { if(array[i] != a.array[i]) return false; } return true; } bool Array::operator!=(Array &a){ return *this == a;
  • 3.
    } ostream &operator<<(ostream &out,Array &b) { for(int i = 0; i < b.end - b.start; ++i) { out << "(" << i + b.start << ")" << b.array[i] << " "; } return out; } Array &operator+(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { arr.array[i] = a.array[i] + b.array[i]; } return arr; } Array &operator-(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { arr.array[i] = a.array[i] - b.array[i]; } return arr; } Array &operator*(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { arr.array[i] = a.array[i] * b.array[i]; }
  • 4.
    return arr; } Array &operator/(Array&a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { if (a.array[i]!=0) arr.array[i] = b.array[i] / a.array[i]; } return arr; } int main() { Array test(10); Array Ary1(10,25); Array Ary2(-5,10); Array Ary3(15,30); int i; int j; for (i = 0; i < 10; i++) test[i] = i+1; cout << "Test array output" << endl; for (i = 0; i < 10; i++) cout << test[i] << " "; cout << endl; i = -5; while (i < 10) { Ary2[i] = i*2;
  • 5.
    i++; } cout << ""; cout << "Ary2 array otuput" << endl; for (i = -5; i < 10; i++) cout << Ary2[i] << " "; cout << endl; i = 10; j = -5; while ( i < 25 ) { Ary1[ i ] = i*100; Ary2[j] = j * 200; i++; j++; }; cout << "Ary1 array output" << endl; cout << Ary1 << endl; cout << endl; cout << " "; cout << "Ary2 array output" << endl; cout << Ary2 << endl; cout << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] + Ary2[i+-5]; cout << "Ary3 array Addition output" << endl; cout << Ary3 << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] - Ary2[i+-5]; cout << "Ary3 array Subtraction output" << endl;
  • 6.
    cout << Ary3<< endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] * Ary2[i+-5]; cout << "Ary3 array Multiply output" << endl; cout << Ary3 << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary2[i+-5]/Ary1[i+10]; cout << "Ary3 array Division output" << endl; cout << Ary3 << endl; cout << " "; cout << "Test boundary conditions" << endl; Ary1[8] = 100; Ary1[16] = 200; i = 100; cout << Ary1[i] << endl; return 0; } Solution check the modifed code now you will get all operations done. terminal will display add, subtract, multiply and div operation and dounday condition too. #include using namespace std; class Array { private: int start; int end; int *array; public: Array(int n);
  • 7.
    Array(int n, intm); int &operator[](int index); Array &operator=(Array a); bool operator==(Array &a); bool operator!=(Array &a); friend ostream &operator<<(ostream &out, Array &a); friend Array &operator+(Array &a, Array&b); friend Array &operator-(Array &a, Array&b); friend Array &operator*(Array &a, Array&b); friend Array &operator/(Array &a, Array&b); }; Array::Array(int n) { start = 0; end = n-1; array = new int[n]; for (int i = 0; i < n; i++) array[i] = i+1; } Array::Array(int n, int m) { start = n; end = m-1; array = new int[m-n]; for (int i = 0; i < m-n; i++) array[i] = start + i; } int &Array::operator[](int index) { if (index >= start && index <= end) { return (array[index-start]); } cout << "Error: Index out of bounds." << endl; int temp = 0; return temp;
  • 8.
    //return *array; } Array &Array::operator=(Arraya) { start = a.start; end = a.end; for(int i = 0; i < end - start; ++i) { array[i] = a.array[i]; } return *this; } bool Array::operator==(Array &a) { for(int i = 0; i < end - start; ++i) { if(array[i] != a.array[i]) return false; } return true; } bool Array::operator!=(Array &a){ return *this == a; } ostream &operator<<(ostream &out, Array &b) { for(int i = 0; i < b.end - b.start; ++i) { out << "(" << i + b.start << ")" << b.array[i] << " "; } return out; } Array &operator+(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i)
  • 9.
    { arr.array[i] = a.array[i]+ b.array[i]; } return arr; } Array &operator-(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { arr.array[i] = a.array[i] - b.array[i]; } return arr; } Array &operator*(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { arr.array[i] = a.array[i] * b.array[i]; } return arr; } Array &operator/(Array &a, Array&b) { Array arr(a.end - a.start); for(int i = 0; i < a.end - a.start; ++i) { if (a.array[i]!=0) arr.array[i] = b.array[i] / a.array[i]; } return arr; }
  • 10.
    int main() { Array test(10); ArrayAry1(10,25); Array Ary2(-5,10); Array Ary3(15,30); int i; int j; for (i = 0; i < 10; i++) test[i] = i+1; cout << "Test array output" << endl; for (i = 0; i < 10; i++) cout << test[i] << " "; cout << endl; i = -5; while (i < 10) { Ary2[i] = i*2; i++; } cout << " "; cout << "Ary2 array otuput" << endl; for (i = -5; i < 10; i++) cout << Ary2[i] << " "; cout << endl; i = 10; j = -5; while ( i < 25 ) { Ary1[ i ] = i*100;
  • 11.
    Ary2[j] = j* 200; i++; j++; }; cout << "Ary1 array output" << endl; cout << Ary1 << endl; cout << endl; cout << " "; cout << "Ary2 array output" << endl; cout << Ary2 << endl; cout << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] + Ary2[i+-5]; cout << "Ary3 array Addition output" << endl; cout << Ary3 << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] - Ary2[i+-5]; cout << "Ary3 array Subtraction output" << endl; cout << Ary3 << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary1[i+10] * Ary2[i+-5]; cout << "Ary3 array Multiply output" << endl; cout << Ary3 << endl; cout << " "; for (i=0;i<14;i++) Ary3[i+15] = Ary2[i+-5]/Ary1[i+10]; cout << "Ary3 array Division output" << endl; cout << Ary3 << endl; cout << " ";
  • 12.
    cout << "Testboundary conditions" << endl; Ary1[8] = 100; Ary1[16] = 200; i = 100; cout << Ary1[i] << endl; return 0; }