Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct vector{
- int x;
- int y;
- int z;
- }vector;
- int** funkcja(char* nazwa, int wersy)
- {
- FILE* plik = fopen(nazwa,"r");
- int** matrix = malloc( 3*sizeof(int*) );
- for(int i=0; i<3; i++)
- {
- *(matrix+i) = malloc(wersy*sizeof(int));
- }
- for(int i=0; i<wersy; i++)
- {
- fscanf(plik,"%d%d%d", &matrix[0][i], &matrix[1][i], &matrix[2][i]);
- }
- return matrix;
- }
- void printMatrix(int** matrix, int wersy)
- {
- for(int i=0; i<wersy; i++)
- {
- printf("%3d | %3d | %3d\n", matrix[0][i], matrix[1][i], matrix[2][i]);
- }
- }
- void printMatrixOne(int** matrix, int wersy)
- {
- for(int i=0; i<wersy; i++)
- {
- printf("%3d\n", matrix[0][i]);
- }
- }
- void freemem(int **matrix)
- {
- for(int i=0; i<3; i++)
- {
- free(matrix[i]);
- }
- free(matrix);
- }
- void multiplyscalar(int** matrix, int wersy, int skalar)
- {
- for(int i=0; i<wersy; i++)
- {
- matrix[0][i] *= skalar;
- matrix[1][i] *= skalar;
- matrix[2][i] *= skalar;
- }
- }
- void addTwoMatrixes(int** matrix1, int** matrix2, int n)
- {
- for(int i=0; i<n; i++)
- {
- matrix1[0][i] +=matrix2[0][i];
- matrix1[1][i] +=matrix2[1][i];
- matrix1[2][i] +=matrix2[2][i];
- }
- }
- void multiplyVector(int** matrix, vector vec, int wersy)
- {
- for(int i=0; i<wersy; i++)
- {
- matrix[0][i] = matrix[0][i] * vec.x + matrix[1][i] * vec.y + matrix[2][i] * vec.z;
- }
- }
- int** multiplyMatrixes(int** m1, int** m2)
- int main()
- {
- int** matrix = funkcja("plik.txt", 3);
- int** matrix_second = funkcja("plik.txt", 3);
- printMatrix(matrix, 3);
- printf("Macierze po pomnozeniu przez skalar 3:\n ");
- multiplyscalar(matrix, 3, 3);
- printMatrix(matrix,3);
- printf("Macierz po dodaniu macierzy z pliku i tej naszej:\n");
- addTwoMatrixes(matrix, matrix_second, 3);
- printMatrix(matrix,3);
- //deklaracja werktora
- vector vec;
- vec.x = 3;
- vec.y = 2;
- vec.z = 7;
- printf("Macierz po wymnozeniu przez wektor\n");
- multiplyVector(matrix,vec,3);
- printMatrixOne(matrix,3);
- freemem(matrix);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement