diff --git a/.gitignore b/.gitignore index c6127b3..7c6c9f4 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,6 @@ modules.order Module.symvers Mkfile.old dkms.conf + +# random shit I test +test.c \ No newline at end of file diff --git a/functions.h b/functions.h index 87d9578..9d1c489 100644 --- a/functions.h +++ b/functions.h @@ -1,65 +1,121 @@ #include #include -double exponent( double par){ +double exponent(double par) +{ double raisedNum; raisedNum = par * par; - + return raisedNum; }; -double hypotenuse(double par, double par2){ +double hypotenuse(double par, double par2) +{ double sideC; - sideC = sqrt( exponent(par) + exponent(par2) ); + sideC = sqrt(exponent(par) + exponent(par2)); return sideC; }; -void quadratic(double numA, double numB, double numC, double *awn1ptr, double *awn2ptr){ - - double awn1 = (-numB) + sqrt( exponent(numB) - 4 * numA * numC); +void quadratic(double numA, double numB, double numC, double *awn1ptr, double *awn2ptr) +{ + + double awn1 = (-numB) + sqrt(exponent(numB) - 4 * numA * numC); double awn1F = awn1 / (2 * numA); - double awn2 = (-numB) - sqrt( exponent(numB) - 4 * numA * numC); + double awn2 = (-numB) - sqrt(exponent(numB) - 4 * numA * numC); double awn2F = awn2 / (2 * numA); *awn1ptr = awn1F; *awn2ptr = awn2F; }; -double areaOfCircle(double radius){ - +double areaOfCircle(double radius) +{ + double area; area = acos(-1) * exponent(radius); - + return area; } -int buildMatrix(int numRows, int numColumns) +// int buildMatrix(int numRows, int numColumns) +// { + +// int matrix[numRows][numColumns]; + +// printf("\nEnter elements in matrix of size %dx%d \n", numRows, numColumns); + +// for (int i = 0; i < numRows; i++) +// { +// for (int j = 0; j < numColumns; j++) +// { +// scanf("%d", &matrix[i][j]); +// } +// } + +// printf("\nElements in matrix are: \n"); +// for (int i = 0; i < numRows; i++) +// { +// for (int j = 0; j < numColumns; j++) +// { +// printf("%d ", matrix[i][j]); +// } +// printf("\n"); +// } + +// return 0; +// } +//TODO: rewrite matrix builder + +void printMatrix(int row, int col, int m[row][col]) +{ + for (int i = 0; i < row; i++) + { + for (int j = 0; j < col; j++) + { + printf("%d ", m[row][col]); + } + printf("\n"); + } + return; +} + +void addMatrices(int r, int c, int m1[r][c], int m2[r][c], int mr[r][c]) +{ + for (int i = 0; i < r; i++) + { + for (int j = 0; j < c; j++) + { + mr[i][j] = m1[i][j] + m2[i][j]; + } + } +} + +int scalarMultiplication(int numRows, int numColumns, int scalar) { int matrix[numRows][numColumns]; - + printf("\nEnter elements in matrix of size %dx%d \n", numRows, numColumns); - for(int i = 0; i < numRows; i++) + for (int i = 0; i < numRows; i++) { - for(int j = 0; j < numColumns; j++) + for (int j = 0; j < numColumns; j++) { scanf("%d", &matrix[i][j]); } } - printf("\nElements in matrix are: \n"); - for(int i = 0; i < numRows; i++) + printf("\nScaled matrix is: \n"); + for (int i = 0; i < numRows; i++) { - for(int j = 0; j < numColumns; j++) + for (int j = 0; j < numColumns; j++) { - printf("%d ", matrix[i][j]); + printf("%d ", matrix[i][j]*scalar); } printf("\n"); } - - return 0; -} + return 0; +} \ No newline at end of file diff --git a/main.c b/main.c index 537c38e..06aa590 100644 --- a/main.c +++ b/main.c @@ -15,6 +15,8 @@ int main() printf("\n 4. Build a matrix"); printf("\n 5. Matrix determinant"); printf("\n 6. Matrix addition"); + printf("\n 7. Matrix multiplication"); + printf("\n 8. Scalar matrix multiplication"); printf("\n\n Enter your choice here:_____"); printf("\033[D"); printf("\033[D"); @@ -80,22 +82,22 @@ int main() case 4: system("clear"); - printf("\n ~~ Build a matrix ~~\n\n"); - int numRows; - int numColumns; - printf("\nPlease enter the number of rows: "); - scanf("%d", &numRows); - printf("\nPlease enter the number of columns: "); - scanf("%d", &numColumns); - buildMatrix(numRows, numColumns); + // printf("\n ~~ Build a matrix ~~\n\n"); + // int numRows; + // int numColumns; + // printf("\nPlease enter the number of rows: "); + // scanf("%d", &numRows); + // printf("\nPlease enter the number of columns: "); + // scanf("%d", &numColumns); + // buildMatrix(numRows, numColumns); break; + //TODO: replace this case 5: system("clear"); printf("\n ~~ Matrix determinant ~~\n\n"); - break; @@ -103,7 +105,45 @@ int main() system("clear"); printf("\n ~~ Matrix addition ~~\n\n"); - + // int numRows; + // int numColumns; + // printf("\nPlease enter the number of rows: "); + // scanf("%d", &numRows); + // printf("\nPlease enter the number of columns: "); + // scanf("%d", &numColumns); + + // printMatrix(numRows, numColumns, matrix1); + // printf("\n"); + // printMatrix(numRows, numColumns, matrix2); + // printf("\n"); + + // addMatrices(numRows, numColumns, matrix1, matrix2, sumMatrix); + + // printMatrix(numRows, numColumns, sumMatrix); + + break; + case 7: + + system("clear"); + printf("\n ~~ Matrix multiplication ~~\n\n"); + + break; + case 8: + + system("clear"); + printf("\n ~~ Scalar matrix multiplication ~~\n\n"); + + int numRows; + int numColumns; + int scalar; + printf("\nPlease enter the number of rows: "); + scanf("%d", &numRows); + printf("\nPlease enter the number of columns: "); + scanf("%d", &numColumns); + printf("\nPlease enter the scalar multiplier: "); + scanf("%d", &scalar); + + scalarMultiplication(numRows, numColumns, scalar); break;