Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "myHead1.h"
- void myMenu1(int *polecenie, int* zad)
- {
- puts("**Menu kalkulatora macierzy**\n");
- puts("1.Dodawanie\n2.Odejmowanie\n3.Mnozenie przez skalar\n4.Mnozenie macierzy\n5.Transponowanie\n6.Koniec programu");
- scanf("%d",polecenie);
- *zad = 1;
- }
- void matrixDim(int *wier, int *kol) //Pobranie wymiarów
- {
- puts("Podaj liczbe calkowita wieksza od 0");
- puts("Wiersze:");
- scanf("%d",wier);
- puts("Kolumny:");
- scanf("%d",kol);
- }
- double** alokacjaPam(int wier, int kol) //Alokacja pamieci
- {
- double **mat;
- int i;
- mat =(double**)malloc(wier*sizeof(double*));
- if(mat==NULL)
- {
- puts("Błąd alokacji");
- return -1;
- }
- for(i = 0; i < wier; i++)
- {
- mat[i]=(double*)malloc(kol*sizeof(double));
- if(mat[i]==NULL)
- {
- puts("Błąd alokacji");
- return -1;
- }
- }
- return mat;
- }
- void zwolnieniePam(double** mat, int wier) //Zwolnienie pamieci
- {
- int i;
- for(i = 0; i < wier; i++)
- {
- free(mat[i]);
- }
- free(mat);
- }
- void getMatrix(double** mat, int wier, int kol) //Pobieranie danych uzytkownika
- {
- int i;
- int k;
- for(i = 0; i < wier; i++)
- {
- for(k = 0; k < kol; k++)
- {
- printf("Element[%d][%d]", i+1, k+1);
- scanf("%lf",&mat[i][k]);
- }
- }
- }
- void printMatrix(double** mat, int wier, int kol) //Przedstawienie danych
- {
- int i;
- int k;
- for(i = 0; i < wier; i++)
- {
- for(k = 0; k < kol; k++)
- {
- printf("%.2lf ", mat[i][k]);
- }
- printf("\n\n");
- }
- }
- void addMatrix(double** mA, double** mB, double** wyn, int wierA, int kolA)
- {
- FILE *txt;
- int i, k;
- for (i = 0; i < wierA; i++) //dodawanie macierzy
- {
- for(k = 0; k < kolA; k++)
- {
- wyn[i][k]=mA[i][k]+mB[i][k];
- }
- }
- if ((txt=fopen("suma.txt", "w"))==NULL)
- {
- printf ("Nie mogę otworzyć pliku do zapisu\n"); //Blad
- exit(1);
- }
- for(i = 0; i < wierA; i++) //Zapis do pliku suma.txt
- {
- for(k = 0; k < kolA; k++)
- {
- fprintf (txt, "%.2lf ", wyn[i][k]);
- }
- fprintf(txt, "\n");
- }
- fclose (txt);
- }
- void subMatrix(double** mA, double** mB, double** wyn, int wierA, int kolA)
- {
- FILE *txt;
- int i, k;
- int pytanie = 0, warunek = 1;
- while(warunek)
- {
- puts("1. A-B\n2. B-A");
- scanf("%d", &pytanie);
- if(pytanie == 1)
- {
- for (i = 0; i < wierA; i++) //A-B
- {
- for(k = 0; k < kolA; k++)
- {
- wyn[i][k]=mA[i][k]-mB[i][k];
- }
- }
- warunek = 0;
- }
- else if(pytanie == 2)
- {
- for (i = 0; i < wierA; i++) //B-A
- {
- for(k = 0; k < kolA; k++)
- {
- wyn[i][k]=mB[i][k]-mA[i][k];
- }
- }
- warunek = 0;
- }
- else
- {
- puts("wpisz 1 lub 2");
- }
- }
- if ((txt=fopen("roznica.txt", "w"))==NULL) //Blad
- {
- printf ("Nie mogę otworzyć pliku do zapisu\n");
- exit(1);
- }
- if(pytanie == 1)
- {
- fprintf(txt, "*A-B*\n");
- }
- else
- {
- fprintf(txt, "*B-A*\n");
- }
- for(i = 0; i < wierA; i++) //Zapis do pliku roznica.txt
- {
- for(k = 0; k < kolA; k++)
- {
- fprintf (txt, "%.2lf ", wyn[i][k]);
- }
- fprintf(txt, "\n");
- }
- fclose (txt);
- }
- void scalMatrix(double** mA, double** wyn, int wierA, int kolA, double skalar)
- {
- FILE *txt;
- int i, k;
- for (i = 0; i < wierA; i++) //A*skalar
- {
- for(k = 0; k < kolA; k++)
- {
- wyn[i][k]=mA[i][k]*skalar;
- }
- }
- if ((txt=fopen("A_x_skalar.txt", "w"))==NULL)
- {
- printf ("Nie mogę otworzyć pliku do zapisu\n"); //Blad
- exit(1);
- }
- fprintf(txt, "Skalar:*%.2lf*\n", skalar);
- for(i = 0; i < wierA; i++) //Zapis do pliku A_x_skalar.txt
- {
- for(k = 0; k < kolA; k++)
- {
- fprintf (txt, "%.2lf ", wyn[i][k]);
- }
- fprintf(txt, "\n");
- }
- fclose (txt);
- }
- void multiMatrix(double** mA, double** mB, double** wyn, int wierA, int kolA, int kolB)
- {
- FILE *txt;
- int i, j, k;
- int sum;
- for(i = 0; i < wierA; i++) //Mnozenie AxB
- for(j = 0; j < kolB; j++)
- {
- sum = 0;
- for(k = 0; k < kolA; k++) sum += mA[i][k] * mB[k][j];
- wyn[i][j] = sum;
- }
- if ((txt=fopen("iloczyn.txt", "w"))==NULL)
- {
- printf ("Nie mogę otworzyć pliku do zapisu\n"); //Blad
- exit(1);
- }
- for(i = 0; i < wierA; i++) //Zapis do pliku iloczyn.txt
- {
- for(j = 0; j < kolB; j++)
- {
- fprintf (txt, "%.2lf ", wyn[i][j]);
- }
- fprintf(txt, "\n");
- }
- fclose (txt);
- }
- void transMatrix(double** mA, double** wyn, int wierA, int kolA)
- {
- FILE *txt;
- int i, k;
- for (i = 0; i < kolA; i++) //Transponowanie
- {
- for(k = 0; k < wierA; k++)
- {
- wyn[i][k]=mA[k][i];
- }
- }
- if ((txt=fopen("transp.txt", "w"))==NULL)
- {
- printf ("Nie mogę otworzyć pliku do zapisu\n"); //Blad
- exit(1);
- }
- for (i = 0; i < kolA; i++) //Zapis do pliku transp.txt
- {
- for(k = 0; k < wierA; k++)
- {
- fprintf (txt, "%.2lf ", wyn[i][k]);
- }
- fprintf(txt, "\n");
- }
- fclose (txt);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement