Using C++ create a program that is composed of five files to calculate the deter
ID: 3780955 • Letter: U
Question
Using C++ create a program that is composed of five files to calculate the determinant of a user-entered square matrix. The program will have two functions, each with its own header file and source code (.hpp and .cpp) and a main file to run everything.
The matrix will be square and the size will be 2x2 or 3x3. The first function is readMatrix(). It will have two parameters: a pointer to a 2D array and an integer as the size of the matrix. It will prompt the user to fill a square matrix and store the input into the 2D array. The second function is determinant(). It will have 2 parameters: a 2D array and an integer, which is the size of the square. It will return an integer value with is the determinant of the matrix stored in the 2D array.
In the main file, you will create a program that ask users to choose the size of the matrix (2x2 or 3x3), then uses readMatrix() to prompt the user to enter 4 or 9 values to fill the array, calculate the determinant using determinant(), and display both the array and the determinant to the user. The array should not be displayed in a single line but in a square format.
Explanation / Answer
This program takes two matrices of order r1*c1 and r2*c2 respectively. Then, the program multiplies these two matrices (if possible) and displays it on the screen.
PROGRAM
#include <stdio.h>
int main()
{
int a[10][10], b[10][10], result[10][10], r1, c1, r2, c2, i, j, k;
printf("Enter rows and column for first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for second matrix: ");
scanf("%d %d",&r2, &c2);
// Column of first matrix should be equal to column of second matrix and
while (c1 != r2)
{
printf("Error! column of first matrix not equal to row of second. ");
printf("Enter rows and column for first matrix: ");
scanf("%d %d", &r1, &c1);
printf("Enter rows and column for second matrix: ");
scanf("%d %d",&r2, &c2);
}
// Storing elements of first matrix.
printf(" Enter elements of matrix 1: ");
for(i=0; i<r1; ++i)
for(j=0; j<c1; ++j)
{
printf("Enter elements a%d%d: ",i+1, j+1);
scanf("%d", &a[i][j]);
}
// Storing elements of second matrix.
printf(" Enter elements of matrix 2: ");
for(i=0; i<r2; ++i)
for(j=0; j<c2; ++j)
{
printf("Enter elements b%d%d: ",i+1, j+1);
scanf("%d",&b[i][j]);
}
// Initializing all elements of result matrix to 0
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
{
result[i][j] = 0;
}
// Multiplying matrices a and b and
// storing result in result matrix
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
for(k=0; k<c1; ++k)
{
result[i][j]+=a[i][k]*b[k][j];
}
// Displaying the result
printf(" Output Matrix: ");
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
{
printf("%d ", result[i][j]);
if(j == c2-1)
printf(" ");
}
return 0;
}
OUTPUT
Enter rows and column for first matrix: 3
2
Enter rows and column for second matrix: 3
2
Error! column of first matrix not equal to row of second.
Enter rows and column for first matrix: 2
3
Enter rows and column for second matrix: 3
2
Enter elements of matrix 1:
Enter elements a11: 3
Enter elements a12: -2
Enter elements a13: 5
Enter elements a21: 3
Enter elements a22: 0
Enter elements a23: 4
Enter elements of matrix 2:
Enter elements b11: 2
Enter elements b12: 3
Enter elements b21: -9
Enter elements b22: 0
Enter elements b31: 0
Enter elements b32: 4
Output Matrix:
24 29
6 25
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.