Answer to Question #185726 in C++ for Haseeb Hafeez

Question #185726

A designer in 3D graphics company wants to design a matrix as a two-dimensional array. The size of 2D array could be the last two digit of arid number. Initially he creates a class matrix that provides the member function to check that no array index is out of bounds. Make the member data in the matrix class a 10-by-10 array. A constructor should allow the programmer to specify the actual dimensions of the matrix (provided theyre less than 10 by 10). The member functions that access data in the matrix will now need two index numbers: one for each dimension of the array. Heres what a fragment of a main() program that operates on such a class might look like:

If my Arid Number is 20-Arid-254 then:  // in case of zero consider next digit

 matrix m1(5, 4); // define a matrix object

 int temp = 12345; // define an int value 

m1.putel(7, 4, temp); // insert value of temp into matrix at 7,4 

temp = m1.getel(7, 4); // obtain value from matrix at 7,4


1
Expert's answer
2021-04-26T13:13:35-0400
#include <iostream>
using namespace std;

class Matrix
{
  private:
    long int **Matr;
    long int m;
    long int n;

    void Create()
    {
      Matr = new long int*[m];
      for (int z=0; z<m; z++)
        Matr[z] = new long int[n];
    }

  public:
    // constructors and destructor
    Matrix(): m(5), n(5) { Create(); }
    Matrix(long int i): m(i), n(i) { Create(); }
    Matrix(long int i, long int j): m(i), n(j) { Create(); }
    ~Matrix()
    {
      for (int z=0; z<m; z++)
        delete[] Matr[z];
      delete[] Matr;
    }

    // methods
    long int& Element(long int i, long int j)
    {
      if (i<m && j<n)
        return Matr[i][j];
      else
        cout << "Error: 1";
    }

    void MultiplyBy(long int x)
    {
      for(int i=0; i<m; i++)
        for(int j=0; j<n; j++)
          Matr[i][j] *= x;
    }

    void Display()
    {
      for(int i=0; i<m; i++)
      {
        for(int j=0; j<n; j++)
        {
          cout.width(4);
          cout << Matr[i][j];
        }
        cout << endl;
      }
    }

};


int main()
{
  Matrix M(5,5);

  for (int i=0; i<5; i++)
  {
    for (int j=0; j<5; j++)
      M.Element(i, j) = i+j;
  }

  M.Display();

  cout << "\n After multiply by 5\n" << endl;
  M.MultiplyBy(5);
  M.Display();

  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
APPROVED BY CLIENTS