Advertisement
DominikPasiut

Untitled

Jan 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 15.16 KB | None | 0 0
  1. #include "myheader.h"
  2. #include MODUL
  3.  
  4. void dodawanieMacierzy(int *tab1, int *tab2, int SIZE);
  5.  
  6. int mac_mac(int * defaults)
  7. {
  8.  
  9.     alex1();
  10.     int *a, *b, *c = NULL;
  11.  
  12.     // pobieranie rozmiaru
  13.     int size = 3;
  14.     const int rozm = size * size * sizeof (*a);
  15.     a = malloc(rozm);
  16.     printf("Zaalokowano bajtow: %d\n", rozm);
  17.  
  18.     for (int i = 0; i < size; i++)
  19.     {
  20.  
  21.         for (int k = 0; k < size; k++)
  22.         {
  23.            *(a + i*k + k) = *(defaults + i*k + k);  // TODO
  24.             printf( "%d " , *(a + i*k + k) );
  25.  
  26.         }
  27.         printf("\n");
  28.     }
  29.  
  30.  
  31.     {
  32.  
  33.         int rozmiar;
  34.         int **wsk1;
  35.         int **wsk2;
  36.         int **wsk3;
  37.  
  38.         do{
  39.             printf("Podaj rozmiar macierzy: ");
  40.             scanf("%d", &rozmiar);
  41.             system("CLS");
  42.         }while(rozmiar <= 1);
  43.  
  44.         wsk1=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy A
  45.         if(wsk1==NULL)
  46.             return -1;
  47.         for(int i = 0; i < rozmiar; i++)
  48.         {
  49.             wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
  50.             if(wsk1[i]==NULL)
  51.                 return -1;
  52.         }
  53.  
  54.         wsk2=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy B
  55.         if(wsk2==NULL)
  56.             return -1;
  57.         for(int i = 0; i < rozmiar; i++)
  58.         {
  59.             wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
  60.             if(wsk2[i]==NULL)
  61.                 return -1;
  62.         }
  63.         wsk3=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy C
  64.         if(wsk3==NULL)
  65.             return -1;
  66.         for(int i = 0; i < rozmiar; i++)
  67.         {
  68.             wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
  69.             if(wsk3[i]==NULL)
  70.                 return -1;
  71.         }
  72.  
  73.         for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy A
  74.         {
  75.             for(int k = 0; k < rozmiar; k++)
  76.             {
  77.                 printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
  78.                 scanf("%d",&wsk1[i][k]);
  79.             }
  80.             printf("\n");
  81.         }
  82.  
  83.         for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy B
  84.         {
  85.             for(int k = 0; k < rozmiar; k++)
  86.             {
  87.                 printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
  88.                 scanf("%d",&wsk2[i][k]);
  89.             }
  90.             printf("\n");
  91.         }
  92.  
  93.         for(int i = 0; i < rozmiar; i++)                        //Mnożenie macierzy A i B
  94.         {
  95.             for(int k = 0; k < rozmiar; k++)
  96.             {
  97.                 for(int j = 0; j < rozmiar; j++)
  98.                 {
  99.                     wsk3[i][k] += wsk1[i][j] * wsk2[j][k];
  100.                 }
  101.             }
  102.         }
  103.         printf("Macierz A\n");                                  //Wyswietlenie macierzy A
  104.         for(int i = 0; i < rozmiar; i++)
  105.         {
  106.             for(int k = 0; k < rozmiar; k++)
  107.             {
  108.                 printf("%d ", wsk1[i][k]);
  109.             }
  110.             printf("\n");
  111.         }
  112.  
  113.         printf("\n\n");
  114.  
  115.         printf("Macierz B\n");                                  //Wyswietlenie macierzy B
  116.         for(int i = 0; i < rozmiar; i++)
  117.         {
  118.             for(int k = 0; k < rozmiar; k++)
  119.             {
  120.                 printf("%d ", wsk2[i][k]);
  121.             }
  122.             printf("\n");
  123.         }
  124.  
  125.         printf("\n\n");
  126.  
  127.         printf("Macierz C\n");                                  //Wyswietlenie macierzy C
  128.         for(int i = 0; i < rozmiar; i++)
  129.         {
  130.             for(int k = 0; k < rozmiar; k++)
  131.             {
  132.                 printf("%d ", wsk3[i][k]);
  133.             }
  134.             printf("\n");
  135.         }
  136.  
  137. //        system("PAUSE");
  138. //        system("CLS");
  139. //        break;
  140.     }
  141.     if( defaults != NULL )
  142.     {
  143.  
  144.     }
  145. }
  146. int main()
  147. {
  148.  
  149.  
  150.     int wybor_programu;
  151.     char haslo[4];
  152.  
  153.     int defaults[] = {
  154.                 1,2,3,
  155.                 4,5,6,
  156.                 7,8,9
  157.     };
  158.     // char ch;
  159.     do
  160.     { break;
  161.         system("CLS");
  162.         printf("Podaj haslo: ");
  163.         gets(haslo);
  164.         //for(int i = 0; i < 4; i++)
  165.         //  {
  166.         //      ch = getchar();
  167.         //      haslo[i] = ch;
  168.         //      ch = '*';
  169.         //      printf("%c", ch);
  170.         //  }
  171.  
  172.     }while(strcmp(haslo, "1111") != 0);
  173.  
  174.     system("CLS");
  175.  
  176.     do
  177.     {
  178.  
  179.         system("CLS");
  180.  
  181.         printf("Kalkulator macierzy kwadratowych. Wybierz jedna z opcji\n\n");
  182.         puts("1 Dodawanie macierzy");
  183.         puts("2 Odejmowianie macierzy");
  184.         puts("3 Mnozenie macierzy przez skalar");
  185.         puts("4 Mnozenie macierzy przez macierz");
  186.         puts("5 Odwracanie macierzy 3x3");
  187.         puts("6 Zakoncz program");
  188.  
  189.         char tmp;
  190.         scanf("%c", &tmp);
  191.  
  192.         wybor_programu = atoi(&tmp);
  193.  
  194.  
  195.         switch (wybor_programu)
  196.         {
  197.         case 1:
  198.         {
  199.             //int tab1[][];//={{1,2,3,4},{4,6,7,8},{9,8,7,6},{5,4,3,2}};
  200.             //int tab2[][];//={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}};
  201.             //int tab3[][];//={0};
  202.             int rozmiar;
  203.             int **wsk1;
  204.             int **wsk2;
  205.             int **wsk3;
  206.  
  207.             do{
  208.                 printf("Podaj rozmiar macierzy: ");
  209.                 scanf("%d", &rozmiar);
  210.                 system("CLS");
  211.             }while(rozmiar <= 1);
  212.  
  213.             wsk1=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy A
  214.             if(wsk1==NULL)
  215.                 return -1;
  216.             for(int i = 0; i < rozmiar; i++)
  217.             {
  218.                 wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
  219.                 if(wsk1[i]==NULL)
  220.                     return -1;
  221.             }
  222.  
  223.             wsk2=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy B
  224.             if(wsk2==NULL)
  225.                 return -1;
  226.             for(int i = 0; i < rozmiar; i++)
  227.             {
  228.                 wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
  229.                 if(wsk2[i]==NULL)
  230.                     return -1;
  231.             }
  232.             wsk3=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy C
  233.             if(wsk3==NULL)
  234.                 return -1;
  235.             for(int i = 0; i < rozmiar; i++)
  236.             {
  237.                 wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
  238.                 if(wsk3[i]==NULL)
  239.                     return -1;
  240.             }
  241.  
  242.             for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy A
  243.             {
  244.                 for(int k = 0; k < rozmiar; k++)
  245.                 {
  246.                     printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
  247.                     scanf("%d",&wsk1[i][k]);
  248.                 }
  249.                 printf("\n");
  250.             }
  251.  
  252.             for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy B
  253.             {
  254.                 for(int k = 0; k < rozmiar; k++)
  255.                 {
  256.                     printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
  257.                     scanf("%d",&wsk2[i][k]);
  258.                 }
  259.                 printf("\n");
  260.             }
  261.  
  262.             for(int i = 0; i < rozmiar; i++)                        //Dodanie macierzy A do B
  263.             {
  264.                 for(int k = 0; k < rozmiar; k++)
  265.                 {
  266.                     wsk3[i][k] = wsk1[i][k] + wsk2[i][k];
  267.                 }
  268.             }
  269.             printf("Macierz A\n");                                  //Wyswietlenie macierzy A
  270.             for(int i = 0; i < rozmiar; i++)
  271.             {
  272.                 for(int k = 0; k < rozmiar; k++)
  273.                 {
  274.                     printf("%d ", wsk1[i][k]);
  275.                 }
  276.                 printf("\n");
  277.             }
  278.  
  279.             printf("\n\n");
  280.  
  281.             printf("Macierz B\n");                                  //Wyswietlenie macierzy B
  282.             for(int i = 0; i < rozmiar; i++)
  283.             {
  284.                 for(int k = 0; k < rozmiar; k++)
  285.                 {
  286.                     printf("%d ", wsk2[i][k]);
  287.                 }
  288.                 printf("\n");
  289.             }
  290.  
  291.             printf("\n\n");
  292.  
  293.             printf("Macierz C\n");                                  //Wyswietlenie macierzy C
  294.             for(int i = 0; i < rozmiar; i++)
  295.             {
  296.                 for(int k = 0; k < rozmiar; k++)
  297.                 {
  298.                     printf("%d ", wsk3[i][k]);
  299.                 }
  300.                 printf("\n");
  301.             }
  302.  
  303.             system("PAUSE");
  304.             system("CLS");
  305.             break;
  306.         }
  307.         case 2:
  308.         {
  309.             // int tab1[4][4]={{1,2,3,4},{4,6,7,8},{9,8,7,6},{5,4,3,2}};
  310.             //int tab2[4][4]={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}};
  311.             //int tab3[4][4]={0};
  312.  
  313.             int rozmiar;
  314.             int **wsk1;
  315.             int **wsk2;
  316.             int **wsk3;
  317.  
  318.             do{
  319.                 printf("Podaj rozmiar macierzy: ");
  320.                 scanf("%d", &rozmiar);
  321.                 system("CLS");
  322.             }while(rozmiar <= 1);
  323.  
  324.             wsk1=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru pierwszej tablicy
  325.             if(wsk1==NULL)
  326.                 return -1;
  327.             for(int i = 0; i < rozmiar; i++)
  328.             {
  329.                 wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
  330.                 if(wsk1[i]==NULL)
  331.                     return -1;
  332.             }
  333.  
  334.             wsk2=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru pierwszej tablicy
  335.             if(wsk2==NULL)
  336.                 return -1;
  337.             for(int i = 0; i < rozmiar; i++)
  338.             {
  339.                 wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
  340.                 if(wsk2[i]==NULL)
  341.                     return -1;
  342.             }
  343.             wsk3=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru pierwszej tablicy
  344.             if(wsk3==NULL)
  345.                 return -1;
  346.             for(int i = 0; i < rozmiar; i++)
  347.             {
  348.                 wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
  349.                 if(wsk3[i]==NULL)
  350.                     return -1;
  351.             }
  352.  
  353.             for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy A
  354.             {
  355.                 for(int k = 0; k < rozmiar; k++)
  356.                 {
  357.                     printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
  358.                     scanf("%d",&wsk1[i][k]);
  359.                 }
  360.                 printf("\n");
  361.             }
  362.  
  363.             for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy B
  364.             {
  365.                 for(int k = 0; k < rozmiar; k++)
  366.                 {
  367.                     printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
  368.                     scanf("%d",&wsk2[i][k]);
  369.                 }
  370.                 printf("\n");
  371.             }
  372.  
  373.             for(int i = 0; i < rozmiar; i++)                        //Odejmowanie macierzy B od A
  374.             {
  375.                 for(int k = 0; k < rozmiar; k++)
  376.                 {
  377.                     wsk3[i][k] = wsk1[i][k] - wsk2[i][k];
  378.                 }
  379.             }
  380.             printf("Macierz A\n");                                  //Wyswietlenie macierzy A
  381.             for(int i = 0; i < rozmiar; i++)
  382.             {
  383.                 for(int k = 0; k < rozmiar; k++)
  384.                 {
  385.                     printf("%d ", wsk1[i][k]);
  386.                 }
  387.                 printf("\n");
  388.             }
  389.  
  390.             printf("\n\n");
  391.  
  392.             printf("Macierz B\n");                                  //Wyswietlenie macierzy B
  393.             for(int i = 0; i < rozmiar; i++)
  394.             {
  395.                 for(int k = 0; k < rozmiar; k++)
  396.                 {
  397.                     printf("%d ", wsk2[i][k]);
  398.                 }
  399.                 printf("\n");
  400.             }
  401.  
  402.             printf("\n\n");
  403.  
  404.             printf("Macierz C\n");                                  //Wyswietlenie macierzy C
  405.             for(int i = 0; i < rozmiar; i++)
  406.             {
  407.                 for(int k = 0; k < rozmiar; k++)
  408.                 {
  409.                     printf("%d ", wsk3[i][k]);
  410.                 }
  411.                 printf("\n");
  412.             }
  413.  
  414.             system("PAUSE");
  415.             system("CLS");
  416.             break;
  417.         }
  418.         case 3:
  419.         {
  420.             int rozmiar;
  421.             int skalar;
  422.             int **wsk1;
  423.             int **wsk2;
  424.  
  425.             do{
  426.                 printf("Podaj rozmiar macierzy: ");
  427.                 scanf("%d", &rozmiar);
  428.                 system("CLS");
  429.             }while(rozmiar <= 1);
  430.  
  431.             do{
  432.                 printf("Podaj skalar: ");
  433.                 scanf("%d", &skalar);
  434.                 system("CLS");
  435.             }while(skalar == 0);
  436.  
  437.             wsk1=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy A
  438.             if(wsk1==NULL)
  439.                 return -1;
  440.             for(int i = 0; i < rozmiar; i++)
  441.             {
  442.                 wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
  443.                 if(wsk1[i]==NULL)
  444.                     return -1;
  445.             }
  446.  
  447.             wsk2=(int**)malloc( rozmiar * sizeof(int*));        //Alokacja rozmiaru macierzy B
  448.             if(wsk2==NULL)
  449.                 return -1;
  450.             for(int i = 0; i < rozmiar; i++)
  451.             {
  452.                 wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
  453.                 if(wsk2[i]==NULL)
  454.                     return -1;
  455.             }
  456.  
  457.  
  458.             for(int i = 0; i < rozmiar; i++)                        //Wpisanie wartosci do macierzy A
  459.             {
  460.                 for(int k = 0; k < rozmiar; k++)
  461.                 {
  462.                     printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
  463.                     scanf("%d",&wsk1[i][k]);
  464.                     system("CLS");
  465.                 }
  466.                 printf("\n");
  467.             }
  468.  
  469.             for(int m = 0; m < rozmiar; m++)                        //Wpisanie wartosci do macierzy B
  470.             {
  471.                 for(int n = 0; n < rozmiar; n++)
  472.                 {
  473.                     wsk2[m][n] = wsk1[m][n] * skalar;
  474.                 }
  475.                 printf("\n");
  476.             }
  477.  
  478.             printf("Macierz A\n");
  479.             for(int i = 0; i < rozmiar; i++)
  480.             {
  481.                 for(int k = 0; k < rozmiar; k++)
  482.                 {
  483.                     printf("%d ", wsk1[i][k]);
  484.                 }
  485.                 printf("\n");
  486.             }
  487.  
  488.             printf("\nPomnozone przez skalar rowny %d, =\n\n", skalar);
  489.  
  490.             printf("Macierz B\n");
  491.  
  492.             for(int i = 0; i < rozmiar; i++)
  493.             {
  494.                 for(int k = 0; k < rozmiar; k++)
  495.                 {
  496.                     printf("%d ", wsk2[i][k]);
  497.                 }
  498.                 printf("\n");
  499.             }
  500.  
  501.             system("PAUSE");
  502.             system("CLS");
  503.             break;
  504.         }
  505.  
  506.         case 4: mac_mac(defaults);     break;
  507.  
  508.         case 5:
  509.         {
  510.             system("PAUSE");
  511.             system("CLS");
  512.             break;
  513.         }
  514.  
  515.         default:
  516.             printf("NaN %i \n", wybor_programu);
  517.             break;
  518.         }
  519.  
  520.  
  521.     }while (wybor_programu != 6);
  522.  
  523.  
  524.     return 0;
  525. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement