1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Liula [17]
4 years ago
3

A dynamic integer matrix is a two dimensional array of integers. It can also be described as a pointer to a pointer or an array

of pointers. In this program you will write several small utility functions to test mastery of this concept. The function signatures and descriptions are given below. You may assume that the matrix will be a square matrix meaning that the number of rows equals the number of columns in the matrix.
Implement these functions:
i n t∗∗makeMatrix ( i n t n ) ;
v o i d p r i n t M a t r i x ( i n t∗∗A, i n t n ) ;
b o o l sumEqual ( i n t∗∗A, i n t∗∗B , i n t n ) ;
b o o l i s E q u a l ( i n t∗∗A, i n t∗∗B , i n t n ) ;
i n t d i a g o n a l ( i n t∗∗A, i n t n ) ;
i n t∗∗sumMatrix ( i n t∗∗A, i n t∗∗B , i n t n ) ;
i n t∗∗p r o d u c t ( i n t∗∗A, i n t∗∗B , i n t n ) ;
i n t∗∗s u b t r a c t M a t r i x ( i n t∗∗A, i n t∗∗B , i n t n ) ;
NEXT TWO ARE EXTRA CREDIT AND NOT REQUIRED
d o u b l e∗∗i n v e r s e M a t r i x ( i n t∗∗A, i n t n ) ;
d o u b l e∗∗m a t r i x D i v i s i o n ( i n t∗∗A, i n t∗∗B , i n t n ) ;
Please read the description of these functions carefully.
The makeMatrix function dynamically allocates memory for an integer matrix of size n. It prompts the user to enter values for each position of the matrix from left to right row by row, then returns the created matrix.The printMatrix function displays the matrix from its argument row by row legibly enough so that a grader can see the numbers corresponding to each position of the matrix.The sumEqual function takes two matrices of equal size and an integer indicating the size of the matrices. It computes the sum of all elements in each matrix and see if the sum of each matrix is equal to one another. The function returns true if the sums are equal or returns false if the sums are not equal to one another. You may want to use the enumerated type named "bool" that has only two values: true and false. It is defined in the stdbool.h header file. Function takes two matrices and an integer indicating the size of both matrices.
The isEqual function checks each matrix element by element and see if each element of matrix A is equal to its corresponding element in matrix B. It returns true if the two matrices are element-wise qual or false if even one element is not equal to its corresponding element in the other matrix. You may want to use the enumerated type named "bool" that has only two values: true and false. It is defined in the stdbool.h header file. Function takes two matrices and an integer indicating the size of both matrices.
The diagonal function calculates the product of the elements along the diagonal of the matrix and returns that number. Function takes a single matrix and an integer indicating the size of the matrix. It returns the product.
The sumMatrix function computes the sum of the two matrices. Note that the matrix sum is done element by element in the two matrices. Function takes two matrices and and an integer indicating the size of both matrices. It returns reference to a new dynamic matrix that contains the element by element sum for the corresponding positions.
The product function computes the matrix product by multiplying two matrices.It takes two matrices and an integer indicating the size of both matrices. It returns reference to a new dynamic matrix that is the result of matrix multiplication.
The subtractMatrix function computes the difference of two matrices. The function take two matrices and an integer indicating the size of both matrices. It returns reference to a new dynamic matrix containing the element-wise subtraction.
Your main function should operate similar to the array problem in the last homework assignment. Meaning it will first prompt the user for a size value to be used for both matrices then allow data for them to be entered (by using the makeMatrix function).

Computers and Technology
1 answer:
MrMuchimi4 years ago
3 0

Answer:

#include<iostream>

using namespace std;

int** makeMatrix(int n)

{

int** newM = new int*[n];

for(int i = 0; i < n; i++)

{

newM[i] = new int[n];

for(int j = 0;j < n; j++)

{

cin >> newM[i][j];

}

}

return newM;

}

void printMatrix(int** A, int n)

{

for(int i = 0; i < n; i++)

{

for(int j = 0;j < n; j++)

{

cout << A[i][j] << " ";

}

cout << endl;

}

}

bool sumEqual(int** A,int** B, int n)

{

int sum1 = 0, sum2 = 0;

for(int i = 0; i < n; i++)

{

for(int j = 0; j < n; j++)

{

sum1 += A[i][j];

sum2 += B[i][j];

}

}

return sum1 == sum2;

}

bool isEqual(int** A, int** B, int n)

{

for(int i = 0; i <n; i++)

{

for(int j = 0; j < n; j++)

{

if(A[i][j] != B[i][j])

{

return false;

}

}

}

return true;

}

int diagonal(int** A, int n)

{

int product = 1;

for(int i = 0; i < n; i++)

{

product *= A[i][i];

}

return product;

}

int** sumMatrix(int** A, int** B, int n)

{

int** C = new int*[n];

for(int i = 0; i < n; i++)

{

C[i] = new int[n];

for(int j = 0; j < n; j++)

{

C[i][j] = A[i][j] + B[i][j];

}

}

return C;

}

int** product(int** A, int**B, int n)

{

int** C = new int*[n];

for(int i = 0; i < n; i++)

{

C[i] = new int[n];

for(int j = 0; j < n; j++)

{

C[i][j] = 0;

for(int k = 0; k < n; k++)

{

C[i][j] += A[i][k] * B[k][j];

}

}

}

return C;

}

int** subtractMatrix(int** A, int** B, int n)

{

int** C = new int*[n];

for(int i = 0; i < n; i++)

{

C[i] = new int[n];

for(int j = 0; j < n; j++)

{

C[i][j] = A[i][j] - B[i][j];

}

}

return C;

}

int main()

{

cout << "Enter the size of the matrices : ";

int n;

cin >> n;

int** m1 = makeMatrix(n);

int** m2 = makeMatrix(n);

cout << endl << "Print the first matrix : "<< endl;

printMatrix(m1,n);

cout << "Print the second matrix : " << endl;

printMatrix(m2,n);

cout << "Is sum equal : " << sumEqual(m1,m2,n) << endl;

cout << "Are these two matrices equal : " << isEqual(m1,m2,n) << endl;

cout << "Product of diagonal elements of first matrix is : " << diagonal(m1,n) << endl;

cout << "Sum of two matrices is : " << endl;

int** sum = sumMatrix(m1,m2,n);

printMatrix(sum,n);

cout << "Product of two matrices is : " << endl;

int** pro = product(m1,m2,n);

printMatrix(pro,n);

cout << "Difference of two matrices is: " << endl;

int** difference = subtractMatrix(m1,m2,n);

printMatrix(difference, n);

return 0;

}

Explanation:

All the required functions have been implemented. See the output snippet which is added for better understanding.

You might be interested in
Type the correct answer in the box. Spell all words correctly.
Tom [10]

Answer:

navigate keys

Explanation:

the up and down keys are to scroll through documents and pages.

8 0
4 years ago
Read 2 more answers
What does the program 7-zip do for the files on your computer
IrinaK [193]
It condenses and expands files so they move easily over the internet.. You should never remove it.
8 0
3 years ago
In most languages, if a file does not exist and a program attempts to open it in append mode, what happens?
chubhunter [2.5K]

Answer:

It create a new file in which writing of data begins.

Explanation:

A file can be open in the three mode:

-r (Read mode): open an existing file for the purpose of reading data from it.

-w (write mode): Create a new file for the purpose of writing data to it.

-a (append mode): open an existing file for the purpose of appending extra data to it but if the file does not exist, it create a new file and start writing data to it.

5 0
4 years ago
For a line segment, show that clipping against the top of the clipping rectangle can be done independently of the clipping again
butalik [34]

Answer:

Explanation:

Solution is in the attached document.

3 0
3 years ago
Which of the following is not an advantage of a dbms?
vovikov84 [41]
I looked it up and A seems to be it
7 0
3 years ago
Read 2 more answers
Other questions:
  • Whoevr answers this will be marked brainliest
    12·1 answer
  • Under the advanced options screen, what startup option should be enabled in order to view what did and did not load during the b
    12·1 answer
  • For connection to place on any network you must have a set of standards?<br> O True<br> O False
    8·1 answer
  • QUICK! The commands available from a menu change depending upon what you are doing. True False
    10·2 answers
  • When should you save your document?
    15·2 answers
  • A list that is not sorted by numbers is called a?
    10·1 answer
  • A program that converts a program to binary all at once and runs the entire program when finished with the conversion.
    5·1 answer
  • Write a Python program called wdcount.py which uses a dictionary to count the number of occurrences of each word (ignoring case)
    10·1 answer
  • Which of the following occupations uses math concepts to determine if a particular event would occur and the related costs of th
    14·1 answer
  • What is an example of new technology having a negative impact on sustainability?.
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!