Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. typedef struct vector{
  4. int x;
  5. int y;
  6. int z;
  7. }vector;
  8. int** funkcja(char* nazwa, int wersy)
  9. {
  10. FILE* plik = fopen(nazwa,"r");
  11. int** matrix = malloc( 3*sizeof(int*) );
  12. for(int i=0; i<3; i++)
  13. {
  14. *(matrix+i) = malloc(wersy*sizeof(int));
  15. }
  16. for(int i=0; i<wersy; i++)
  17. {
  18. fscanf(plik,"%d%d%d", &matrix[0][i], &matrix[1][i], &matrix[2][i]);
  19. }
  20. return matrix;
  21. }
  22.  
  23. void printMatrix(int** matrix, int wersy)
  24. {
  25. for(int i=0; i<wersy; i++)
  26. {
  27. printf("%3d | %3d | %3d\n", matrix[0][i], matrix[1][i], matrix[2][i]);
  28. }
  29. }
  30. void printMatrixOne(int** matrix, int wersy)
  31. {
  32. for(int i=0; i<wersy; i++)
  33. {
  34. printf("%3d\n", matrix[0][i]);
  35. }
  36. }
  37. void freemem(int **matrix)
  38. {
  39. for(int i=0; i<3; i++)
  40. {
  41. free(matrix[i]);
  42. }
  43. free(matrix);
  44. }
  45. void multiplyscalar(int** matrix, int wersy, int skalar)
  46. {
  47. for(int i=0; i<wersy; i++)
  48. {
  49. matrix[0][i] *= skalar;
  50. matrix[1][i] *= skalar;
  51. matrix[2][i] *= skalar;
  52. }
  53. }
  54. void addTwoMatrixes(int** matrix1, int** matrix2, int n)
  55. {
  56. for(int i=0; i<n; i++)
  57. {
  58. matrix1[0][i] +=matrix2[0][i];
  59. matrix1[1][i] +=matrix2[1][i];
  60. matrix1[2][i] +=matrix2[2][i];
  61. }
  62. }
  63. void multiplyVector(int** matrix, vector vec, int wersy)
  64. {
  65. for(int i=0; i<wersy; i++)
  66. {
  67. matrix[0][i] = matrix[0][i] * vec.x + matrix[1][i] * vec.y + matrix[2][i] * vec.z;
  68. }
  69. }
  70. int** multiplyMatrixes(int** m1, int** m2)
  71. int main()
  72. {
  73. int** matrix = funkcja("plik.txt", 3);
  74. int** matrix_second = funkcja("plik.txt", 3);
  75. printMatrix(matrix, 3);
  76. printf("Macierze po pomnozeniu przez skalar 3:\n ");
  77. multiplyscalar(matrix, 3, 3);
  78. printMatrix(matrix,3);
  79. printf("Macierz po dodaniu macierzy z pliku i tej naszej:\n");
  80. addTwoMatrixes(matrix, matrix_second, 3);
  81. printMatrix(matrix,3);
  82. //deklaracja werktora
  83. vector vec;
  84. vec.x = 3;
  85. vec.y = 2;
  86. vec.z = 7;
  87. printf("Macierz po wymnozeniu przez wektor\n");
  88. multiplyVector(matrix,vec,3);
  89. printMatrixOne(matrix,3);
  90. freemem(matrix);
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement