Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Spring 2020 CPSC2620 Assignment 3 Due: February 14 (Friday), 2020 11:55pm Notes: ) The assignment must be finished independently. Any plagiarism is forbidden and will

image text in transcribed
image text in transcribed
Spring 2020 CPSC2620 Assignment 3 Due: February 14 (Friday), 2020 11:55pm Notes: ) The assignment must be finished independently. Any plagiarism is forbidden and will be dealt with seriously. (*) Your submission will be marked on the correctness and readability (including comments) of your program. (9) Write a Makefile that is used to compile your programs. For instance, make test MatrixExt will generate an executable called test MatrixExt to test your program for Question (1) while make testMatrix Pro will generate an executable called testMatrixPro to test your program for Question (2). If you just issue make, then both will be generated. (1) Continuing writing the CMatrix class in Question 2 from Assignment 2, we will expand it in this question. Let's call the new class CMatrix Ext. All requirements regarding element indices are the same as before. Data members are the same as before. The following is the list of member functions. Note that some of them can be borrowed from your answer in Assignment 2. int allocateMatrix Memory(int n): to allocate an nxn array of integers. void deallocate Matrix Memory(int **M, int n): to deallocate an nxn array of integers. CMatrixExt(int n = 2): constructor. CMatrixExt(const CMatrixExt &M): copy constructor: copy matrix M to this current matrix using deep copying. -CMatrixExt(): destructor int getDimension(void): to return the dimension: n for the matrix nxn. int getElementAtint i, int j): to return the element at 11). Check whether the indices are OK. The indices start from 1 and will be checked. int replaceElementAt(int i, int j, int newint): to replace the element at with the new element. Check whether the indices are OK. Return the old element. void swap ElementsAt(int in, int j1, int i2, int j2): to swap the element at (11.j1) with the element at (12, 12). Chech whether the indices are OK. void resizeMatrix(int newsize): to resize the matrix with the new size Copy the original elements if necessary. void read Matrix(void): void printMatrix(void): to read or print out the matrix from cin or to cout. Read elements and print out elements by following the row-major order. void makeldentity: to make the current matrix an identity, ie, change all the elements on the diagonal to 1 and change all the other element to 0. void copy Matrix(const CMatrixExt&M): to take one MatrixExt parameter and copy it to this current copyMatrix CMatrixExt object. Use assert to ensure that the dimensions of the two matrices are compatible CMatrixExt addMatrix(const CMatrixExt &M): to take one MatrixExt parameter and return the result that is the sum between the current object and the supplied object. Use assert to ensure that the dimensions of the two matrices are compatible CMatrixExt addMatrix(int i): to add x to each element of the current matrix and return the result. CMatrix Ext subtract Matrix(const CMatrix Ext&M) to take one Matrit parameter and return the result that is the difference between the current object and the supplied objecte assert to ensure that the dimensions of the two matrices are compatible Matrix subtract Matrixintxs to subtract from each element of the current mat and return the result MatrixExt multiply Matrix(const CMa x t AM) to take one additional Matrix parameter, compute the product of the current mat with it and return the result Use assert to ensure that the dimensions of the two matrices are compatible Matrix multiply Matrixintx) to multiply each element of the current matrix by Return the result. Don't change the current mort bool isDiagonalfvold) to turn true if all the elements not on the diagonal areas Och u rn false bool is identityold): to return true the elements on the diagonal are ones and all the clement where are eros. Otherwise return false bool is Bigger(const Matrix Ext&M): For two motrices A and B we say A Rf every clement of A is bigger than the corresponding element of B. Return true if the current matrix the input mar M. Otherwise return false bool is Smaller(const Matrix Ext&M): For two matrices A and B we say A B if every element of A is smaller than the corresponding element of Return true if the current matrix the input matrix M. Otherwise return false hool is Equal const CMatrix Ext&M): For two matrices A and we say A - Rif every element of A is equal to the corresponding element of B Return true if the current matrix input matrix M. Otherwise return false Create a test program called test Matrixx.cc. Your test should show that the member functions of the matrix class work as expected. One good way to do this create two 3 x 3 matrices, read elements in them, do additions, subtractions and multiplication between the two matrices or between a matrix and an integer. Each time print the result out to verify (show) that your program works. (2) Let us make some semi-professional class such that you can show it to your teammates and let them use it. Continuing writing the Matrix class in Question 1. we will modify it in this question. Let's call the new class C Matrix Pro. All requirements regarding element indices are the same as before. Data members are the same as before Modify the following member functions into overloaded operators, while keeping the other members functions as before. read Matrix printMatrix copy Matrix Subtract Matrix multiply Matrix is Bigger is smaller >>(implemented as a friend) implemented as a friend) implemented as a member operator) + implemented as member operators for both versions) - implemented as member operators for both version) implemented as member operators for both versions) implemented as a member operator)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Jeffrey A. Hoffer Fred R. McFadden

9th Edition

B01JXPZ7AK, 9780805360479

More Books

Students also viewed these Databases questions