Advertisement
kaburen

main

Jan 31st, 2019
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.21 KB | None | 0 0
  1. #include "myHead1.h"
  2. #include "myFunc1.c"
  3.  
  4. int main()
  5. {
  6.     double** matrixA = NULL;
  7.     double** matrixB = NULL;
  8.     double** wynik = NULL;
  9.     double skalar;
  10.     int wierA, kolA, wierB, kolB, polecenie, zad = 1;
  11.     int warunki = 1;
  12.     while(zad){
  13.  
  14.         myMenu1(&polecenie, &zad);
  15.  
  16.         switch (polecenie)
  17.         {
  18.         case 1 :
  19.             puts("Podaj wymiary macierzy:");
  20.             matrixDim(&wierA, &kolA);
  21.  
  22.             matrixA = alokacjaPam(wierA, kolA);                                         //Alokacja pamieci
  23.             matrixB = alokacjaPam(wierA, kolA);
  24.             wynik = alokacjaPam(wierA, kolA);
  25.  
  26.             puts("Macierz A:");
  27.             getMatrix(matrixA, wierA, kolA);                                            //Pobranie elementow macierzy
  28.             puts("Macierz B:");
  29.             getMatrix(matrixB, wierA, kolA);
  30.  
  31.             addMatrix(matrixA, matrixB, wynik, wierA, kolA);
  32.  
  33.             puts("Macierz A:");
  34.             printMatrix(matrixA, wierA, kolA);
  35.             puts("Macierz B:");                                                         //Przedstawienie wynikow
  36.             printMatrix(matrixB, wierA, kolA);
  37.             puts("Suma macierzy A i B:");
  38.             printMatrix(wynik, wierA, kolA);
  39.  
  40.             zwolnieniePam(matrixB, wierA);                                              //Zwolnienie pamieci
  41.             zwolnieniePam(matrixA, wierA);
  42.             zwolnieniePam(wynik, wierA);
  43.             break;
  44.  
  45.         case 2 :
  46.             puts("Podaj wymiary macierzy:");
  47.             matrixDim(&wierA, &kolA);
  48.  
  49.             matrixA = alokacjaPam(wierA, kolA);
  50.             matrixB = alokacjaPam(wierA, kolA);
  51.             wynik = alokacjaPam(wierA, kolA);
  52.  
  53.             puts("Macierz A:");
  54.             getMatrix(matrixA, wierA, kolA);
  55.             puts("Macierz B:");
  56.             getMatrix(matrixB, wierA, kolA);
  57.  
  58.             subMatrix(matrixA, matrixB, wynik, kolA, wierA);
  59.  
  60.             puts("Macierz A:");
  61.             printMatrix(matrixA, wierA, kolA);
  62.             puts("Macierz B:");
  63.             printMatrix(matrixB, wierA, kolA);
  64.             puts("Roznica macierzy A i B:");
  65.             printMatrix(wynik, wierA, kolA);
  66.  
  67.             zwolnieniePam(matrixB, wierA);
  68.             zwolnieniePam(matrixA, wierA);
  69.             zwolnieniePam(wynik, wierA);
  70.  
  71.             break;
  72.  
  73.         case 3 :
  74.             puts("Podaj wymiary macierzy A:");
  75.             matrixDim(&wierA, &kolA);
  76.             puts("Podaj skalar");
  77.             scanf("%lf", &skalar);
  78.  
  79.             matrixA = alokacjaPam(wierA, kolA);
  80.             wynik = alokacjaPam(wierA, kolA);
  81.  
  82.             puts("Macierz A:");
  83.             getMatrix(matrixA, wierA, kolA);
  84.             scalMatrix(matrixA, wynik, wierA, kolA, skalar);
  85.  
  86.             puts("Macierz A:");
  87.             printMatrix(matrixA, wierA, kolA);
  88.             printf("Skalar: %.2lf\n%.2lf*A:\n\n", skalar, skalar);
  89.             printMatrix(wynik, wierA, kolA);
  90.  
  91.             zwolnieniePam(matrixA, wierA);
  92.             zwolnieniePam(wynik, wierA);
  93.  
  94.             break;
  95.  
  96.         case 4 :
  97.             while(warunki)
  98.             {
  99.                 puts("Podaj wymiary macierzy A:");
  100.                 matrixDim(&wierA, &kolA);
  101.                 puts("Podaj wymiary macierzy B:");
  102.                 matrixDim(&wierB, &kolB);
  103.  
  104.                 if(kolA != wierB)                                                       //Sprawdzenie warunku mnozenia
  105.                 {
  106.                     warunki = 1;
  107.                     puts("Podaj wymiary spelniajace warunek: kolumny A = wiersze B");
  108.                 }
  109.                 else
  110.                 {
  111.                     warunki = 0;
  112.                 }
  113.             }
  114.  
  115.             matrixA = alokacjaPam(wierA, kolA);
  116.             matrixB = alokacjaPam(wierB, kolB);
  117.             wynik = alokacjaPam(wierA, kolB);
  118.  
  119.             puts("Macierz pierwsza:");
  120.             getMatrix(matrixA, wierA, kolA);
  121.             puts("Macierz druga:");
  122.             getMatrix(matrixB, wierB, kolB);
  123.  
  124.             multiMatrix(matrixA, matrixB, wynik, wierA, kolA, kolB);
  125.  
  126.             puts("Macierz A:");
  127.             printMatrix(matrixA, wierA, kolA);
  128.             puts("Macierz B:");
  129.             printMatrix(matrixB, wierB, kolB);
  130.             puts("Iloczyn macierzy A i B");
  131.             printMatrix(wynik, wierA, kolB);
  132.  
  133.             zwolnieniePam(matrixA, wierA);
  134.             zwolnieniePam(matrixB, wierB);
  135.             zwolnieniePam(wynik, wierA);
  136.  
  137.             break;
  138.  
  139.         case 5 :
  140.             puts("Podaj wymiary macierzy A:");
  141.             matrixDim(&wierA, &kolA);
  142.  
  143.             matrixA = alokacjaPam(wierA, kolA);
  144.             wynik = alokacjaPam(kolA, wierA);
  145.  
  146.             puts("Macierz pierwsza:");
  147.             getMatrix(matrixA, wierA, kolA);
  148.  
  149.             transMatrix(matrixA, wynik, wierA, kolA);
  150.  
  151.             puts("Macierz A:");
  152.             printMatrix(matrixA, wierA, kolA);
  153.             puts("Macierz A transponowana:");
  154.             printMatrix(wynik, kolA, wierA);
  155.  
  156.             zwolnieniePam(matrixA, wierA);
  157.             zwolnieniePam(wynik, kolA);
  158.  
  159.             break;
  160.  
  161.         case 6 : return 0;
  162.  
  163.         default : puts("Podaj odpowiedni numer operacji");
  164.             break;
  165.         }
  166.     }
  167.  
  168.     return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement