diff options
| author | austinsworld15 <[email protected]> | 2021-12-08 13:48:00 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-12-08 13:48:00 -0800 |
| commit | babf4b318d1a5e8c9d9e3c402040961f28af0fb4 (patch) | |
| tree | 0358e319c8b27bf8753ce4252cbc324e5841b302 | |
| parent | Update Project 3.cpp (diff) | |
| download | cst116-proj3-austinsworld15-babf4b318d1a5e8c9d9e3c402040961f28af0fb4.tar.xz cst116-proj3-austinsworld15-babf4b318d1a5e8c9d9e3c402040961f28af0fb4.zip | |
Update Project_3_Functions.cpp
| -rw-r--r-- | CST116F2021-Proj3/Project_3_Functions.cpp | 456 |
1 files changed, 228 insertions, 228 deletions
diff --git a/CST116F2021-Proj3/Project_3_Functions.cpp b/CST116F2021-Proj3/Project_3_Functions.cpp index aa8bee8..a13fca8 100644 --- a/CST116F2021-Proj3/Project_3_Functions.cpp +++ b/CST116F2021-Proj3/Project_3_Functions.cpp @@ -7,7 +7,7 @@ using namespace std; //This function is only to display the menu void Menu() { - cout << "----------------------------------------------------------------------\n\nThis program will ask you for a matrix and will either:\n\n1. Process and display a matrix\n\n2. Add a matrix\n\n3. Multiply a matrix\n\n4. Exit the program\n\nInput the corresponding number to make a choice\n\n----------------------------------------------------------------------\n\nYour choice is:\n\n"; + cout << "----------------------------------------------------------------------\n\nThis program will ask you for a matrix and will either:\n\n1. Process and display a matrix\n\n2. Multiply a matrix\n\n3. Add a matrix\n\n4. Exit the program\n\nInput the corresponding number to make a choice\n\n----------------------------------------------------------------------\n\nYour choice is:\n\n"; } //This funtion will process the choice inputted from the user @@ -19,238 +19,238 @@ void ProcessChoice(int& choice) //This function is only used to record a matrix, but won't be used because the individual functions will ask for a matrix anyways. This function is only to record and display back, and not to use void GetMatrix(int& rowM1, int& columnM1, int& rowM2, int& columnM2, int& iM, int& jM) { - int arrayM1[10][10]; - int arrayM2[10][10]; - int Matrixarray[10][10]; - - //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants - cout << "Enter rows and columns for first matrix: "; - cin >> rowM1 >> columnM1; - cout << "\nEnter rows and columns for second matrix: "; - cin >> rowM2 >>columnM2; - - // If column of first matrix in not equal to row of second matrix, - // ask the user to enter the size of matrix again. - while (columnM1 != rowM2) - { - cout << "Error! column of first matrix not equal to row of second."; - - cout << "Enter rows and columns for first matrix: "; - cin >> rowM1 >> columnM1; - - cout << "Enter rows and columns for second matrix: "; - cin >> rowM2 >> columnM2; - } - - // Storing elements of first matrix. - cout << endl << "Enter elements of matrix 1:" << endl; - for (iM = 0; iM < rowM1; ++iM) - for (jM = 0; jM < columnM1; ++jM) - { - cout << "Enter element a" << iM + 1 << jM + 1 << " : "; - cin >> arrayM1[iM][jM]; - } - - // Storing elements of second matrix. - cout << endl << "Enter elements of matrix 2:" << endl; - for (iM = 0; iM < rowM2; ++iM) - for (jM = 0; jM < columnM2; ++jM) - { - cout << "Enter element b" << iM + 1 << jM + 1 << " : "; - cin >> arrayM2[iM][jM]; - } - - //Displaying the numbers of matrix a inputted by user - cout << endl << "Input numbers from array 1: \n" << endl; - for (iM = 0; iM < rowM1; ++iM) - for (jM = 0; jM < columnM2; ++jM) - { - cout << " " << arrayM1[iM][jM]; - if (jM == columnM2 - 1) - cout << endl; - } - - //Displaying the numbers of matrix b inputted by user - cout << endl << "Input numbers from array 2: \n" << endl; - for (iM = 0; iM < rowM1; ++iM) - for (jM = 0; jM < columnM2; ++jM) - { - cout << " " << arrayM2[iM][jM]; - if (jM == columnM2 - 1) - cout << endl; - } + int arrayM1[10][10]; + int arrayM2[10][10]; + int Matrixarray[10][10]; + + //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants + cout << "Enter rows and columns for first matrix: "; + cin >> rowM1 >> columnM1; + cout << "\nEnter rows and columns for second matrix: "; + cin >> rowM2 >> columnM2; + + // If column of first matrix in not equal to row of second matrix, + // ask the user to enter the size of matrix again. + while (columnM1 != rowM2) + { + cout << "Error! column of first matrix not equal to row of second."; + + cout << "Enter rows and columns for first matrix: "; + cin >> rowM1 >> columnM1; + + cout << "Enter rows and columns for second matrix: "; + cin >> rowM2 >> columnM2; + } + + // Storing elements of first matrix. + cout << endl << "Enter elements of matrix 1:" << endl; + for (iM = 0; iM < rowM1; ++iM) + for (jM = 0; jM < columnM1; ++jM) + { + cout << "Enter element a" << iM + 1 << jM + 1 << " : "; + cin >> arrayM1[iM][jM]; + } + + // Storing elements of second matrix. + cout << endl << "Enter elements of matrix 2:" << endl; + for (iM = 0; iM < rowM2; ++iM) + for (jM = 0; jM < columnM2; ++jM) + { + cout << "Enter element b" << iM + 1 << jM + 1 << " : "; + cin >> arrayM2[iM][jM]; + } + + //Displaying the numbers of matrix a inputted by user + cout << endl << "Input numbers from array 1: \n" << endl; + for (iM = 0; iM < rowM1; ++iM) + for (jM = 0; jM < columnM2; ++jM) + { + cout << " " << arrayM1[iM][jM]; + if (jM == columnM2 - 1) + cout << endl; + } + + //Displaying the numbers of matrix b inputted by user + cout << endl << "Input numbers from array 2: \n" << endl; + for (iM = 0; iM < rowM1; ++iM) + for (jM = 0; jM < columnM2; ++jM) + { + cout << " " << arrayM2[iM][jM]; + if (jM == columnM2 - 1) + cout << endl; + } } int AddMatrix(int& rowa1, int& columna1, int& rowa2, int& columna2, int& ia, int& ja, int& ka) { - int arraya1[10][10]; - int arraya2[10][10]; - int addedarray[10][10]; - - //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants - cout << "Enter rows and columns for first matrix: "; - cin >> rowa1 >> columna1; - cout << "\nEnter rows and columns for second matrix: "; - cin >> rowa2 >> columna2; - - // If column of first matrix in not equal to row of second matrix, - // ask the user to enter the size of matrix again. - while (columna1 != rowa2) - { - cout << "Error! column of first matrix not equal to row of second."; - - cout << "Enter rows and columns for first matrix: "; - cin >> rowa1 >> columna1; - - cout << "Enter rows and columns for second matrix: "; - cin >> rowa2 >> columna2; - } - - // Storing elements of first matrix. - cout << endl << "Enter elements of matrix 1:" << endl; - for (ia = 0; ia < rowa1; ++ia) - for (ja = 0; ja < columna1; ++ja) - { - cout << "Enter element a" << ia + 1 << ja + 1 << " : "; - cin >> arraya1[ia][ja]; - } - - // Storing elements of second matrix. - cout << endl << "Enter elements of matrix 2:" << endl; - for (ia = 0; ia < rowa2; ++ia) - for (ja = 0; ja < columna2; ++ja) - { - cout << "Enter element b" << ia + 1 << ja + 1 << " : "; - cin >> arraya2[ia][ja]; - } - - // Adding matrix a and b and storing in array added. - for (ia = 0; ia < rowa1; ++ia) - for (ja = 0; ja < columna2; ++ja) - for (ka = 0; ka < columna1; ++ka) - { - addedarray[ia][ja] = arraya1[ia][ja] + arraya2[ia][ja]; - } - - //Displaying the numbers of matrix a inputted by user - cout << endl << "Input numbers from array 1: \n" << endl; - for (ia = 0; ia < rowa1; ++ia) - for (ja = 0; ja < columna2; ++ja) - { - cout << " " << arraya1[ia][ja]; - if (ja == columna2 - 1) - cout << endl; - } - - //Displaying the numbers of matrix b inputted by user - cout << endl << "Input numbers from array 2: \n" << endl; - for (ia = 0; ia < rowa1; ++ia) - for (ja = 0; ja < columna2; ++ja) - { - cout << " " << arraya2[ia][ja]; - if (ja == columna2 - 1) - cout << endl; - } - - // Displaying the addition of two matrix. - cout << endl << "Output Matrix: " << endl; - for (ia = 0; ia < rowa1; ++ia) - for (ja = 0; ja < columna2; ++ja) - { - cout << " " << addedarray[ia][ja]; - if (ja == columna2 - 1) - cout << endl; - } - - return 0; + int arraya1[10][10]; + int arraya2[10][10]; + int addedarray[10][10]; + + //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants + cout << "Enter rows and columns for first matrix: "; + cin >> rowa1 >> columna1; + cout << "\nEnter rows and columns for second matrix: "; + cin >> rowa2 >> columna2; + + // If column of first matrix in not equal to row of second matrix, + // ask the user to enter the size of matrix again. + while (columna1 != rowa2) + { + cout << "Error! column of first matrix not equal to row of second."; + + cout << "Enter rows and columns for first matrix: "; + cin >> rowa1 >> columna1; + + cout << "Enter rows and columns for second matrix: "; + cin >> rowa2 >> columna2; + } + + // Storing elements of first matrix. + cout << endl << "Enter elements of matrix 1:" << endl; + for (ia = 0; ia < rowa1; ++ia) + for (ja = 0; ja < columna1; ++ja) + { + cout << "Enter element a" << ia + 1 << ja + 1 << " : "; + cin >> arraya1[ia][ja]; + } + + // Storing elements of second matrix. + cout << endl << "Enter elements of matrix 2:" << endl; + for (ia = 0; ia < rowa2; ++ia) + for (ja = 0; ja < columna2; ++ja) + { + cout << "Enter element b" << ia + 1 << ja + 1 << " : "; + cin >> arraya2[ia][ja]; + } + + // Adding matrix a and b and storing in array added. + for (ia = 0; ia < rowa1; ++ia) + for (ja = 0; ja < columna2; ++ja) + for (ka = 0; ka < columna1; ++ka) + { + addedarray[ia][ja] = arraya1[ia][ja] + arraya2[ia][ja]; + } + + //Displaying the numbers of matrix a inputted by user + cout << endl << "Input numbers from array 1: \n" << endl; + for (ia = 0; ia < rowa1; ++ia) + for (ja = 0; ja < columna2; ++ja) + { + cout << " " << arraya1[ia][ja]; + if (ja == columna2 - 1) + cout << endl; + } + + //Displaying the numbers of matrix b inputted by user + cout << endl << "Input numbers from array 2: \n" << endl; + for (ia = 0; ia < rowa1; ++ia) + for (ja = 0; ja < columna2; ++ja) + { + cout << " " << arraya2[ia][ja]; + if (ja == columna2 - 1) + cout << endl; + } + + // Displaying the addition of two matrix. + cout << endl << "Output Matrix: " << endl; + for (ia = 0; ia < rowa1; ++ia) + for (ja = 0; ja < columna2; ++ja) + { + cout << " " << addedarray[ia][ja]; + if (ja == columna2 - 1) + cout << endl; + } + + return 0; } -int MultiplyMatrix(int& row1,int& column1,int& row2,int& column2,int& i,int& j,int& k) +int MultiplyMatrix(int& row1, int& column1, int& row2, int& column2, int& i, int& j, int& k) { - int array1[10][10]; - int array2[10][10]; - int multipliedarray[10][10]; - - //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants - cout << "Enter rows and columns for first matrix: "; - cin >> row1 >> column1; - cout << "\nEnter rows and columns for second matrix: "; - cin >> row2 >> column2; - - // If column of first matrix in not equal to row of second matrix, - // ask the user to enter the size of matrix again. - while (column1 != row2) - { - cout << "Error! column of first matrix not equal to row of second."; - - cout << "Enter rows and columns for first matrix: "; - cin >> row1 >> column1; - - cout << "Enter rows and columns for second matrix: "; - cin >> row2 >> column2; - } - - // Storing elements of first matrix. - cout << endl << "Enter elements of matrix 1:" << endl; - for (i = 0; i < row1; ++i) - for (j = 0; j < column1; ++j) - { - cout << "Enter element a" << i + 1 << j + 1 << " : "; - cin >> array1[i][j]; - } - - // Storing elements of second matrix. - cout << endl << "Enter elements of matrix 2:" << endl; - for (i = 0; i < row2; ++i) - for (j = 0; j < column2; ++j) - { - cout << "Enter element b" << i + 1 << j + 1 << " : "; - cin >> array2[i][j]; - } - - // Initializing elements of matrix mult to 0. - for (i = 0; i < row1; ++i) - for (j = 0; j < column2; ++j) - { - multipliedarray[i][j] = 0; - } - - // Multiplying matrix a and b and storing in array mult. - for (i = 0; i < row1; ++i) - for (j = 0; j < column2; ++j) - for (k = 0; k < column1; ++k) - { - multipliedarray[i][j] += array1[i][k] * array2[k][j]; - } - //Displaying the numbers of matrix a inputted by user - cout << endl << "Input numbers from array 1: \n" << endl; - for (i = 0; i < row1; ++i) - for (j = 0; j < column2; ++j) - { - cout << " " << array1[i][j]; - if (j == column2 - 1) - cout << endl; - } - - //Displaying the numbers of matrix b inputted by user - cout << endl << "Input numbers from array 2: \n" << endl; - for (i = 0; i < row1; ++i) - for (j = 0; j < column2; ++j) - { - cout << " " << array2[i][j]; - if (j == column2 - 1) - cout << endl; - } - - // Displaying the multiplication of two matrix. - cout << endl << "Output Matrix: " << endl; - for (i = 0; i < row1; ++i) - for (j = 0; j < column2; ++j) - { - cout << " " << multipliedarray[i][j]; - if (j == column2 - 1) - cout << endl; - } - - return 0; + int array1[10][10]; + int array2[10][10]; + int multipliedarray[10][10]; + + //Asking for how many rows and columns for the matrix. I know it's supposed to be a 3 x 3 but I made it to fit however many the user wants + cout << "Enter rows and columns for first matrix: "; + cin >> row1 >> column1; + cout << "\nEnter rows and columns for second matrix: "; + cin >> row2 >> column2; + + // If column of first matrix in not equal to row of second matrix, + // ask the user to enter the size of matrix again. + while (column1 != row2) + { + cout << "Error! column of first matrix not equal to row of second."; + + cout << "Enter rows and columns for first matrix: "; + cin >> row1 >> column1; + + cout << "Enter rows and columns for second matrix: "; + cin >> row2 >> column2; + } + + // Storing elements of first matrix. + cout << endl << "Enter elements of matrix 1:" << endl; + for (i = 0; i < row1; ++i) + for (j = 0; j < column1; ++j) + { + cout << "Enter element a" << i + 1 << j + 1 << " : "; + cin >> array1[i][j]; + } + + // Storing elements of second matrix. + cout << endl << "Enter elements of matrix 2:" << endl; + for (i = 0; i < row2; ++i) + for (j = 0; j < column2; ++j) + { + cout << "Enter element b" << i + 1 << j + 1 << " : "; + cin >> array2[i][j]; + } + + // Initializing elements of matrix mult to 0. + for (i = 0; i < row1; ++i) + for (j = 0; j < column2; ++j) + { + multipliedarray[i][j] = 0; + } + + // Multiplying matrix a and b and storing in array mult. + for (i = 0; i < row1; ++i) + for (j = 0; j < column2; ++j) + for (k = 0; k < column1; ++k) + { + multipliedarray[i][j] += array1[i][k] * array2[k][j]; + } + //Displaying the numbers of matrix a inputted by user + cout << endl << "Input numbers from array 1: \n" << endl; + for (i = 0; i < row1; ++i) + for (j = 0; j < column2; ++j) + { + cout << " " << array1[i][j]; + if (j == column2 - 1) + cout << endl; + } + + //Displaying the numbers of matrix b inputted by user + cout << endl << "Input numbers from array 2: \n" << endl; + for (i = 0; i < row1; ++i) + for (j = 0; j < column2; ++j) + { + cout << " " << array2[i][j]; + if (j == column2 - 1) + cout << endl; + } + + // Displaying the multiplication of two matrix. + cout << endl << "Output Matrix: " << endl; + for (i = 0; i < row1; ++i) + for (j = 0; j < column2; ++j) + { + cout << " " << multipliedarray[i][j]; + if (j == column2 - 1) + cout << endl; + } + + return 0; } |