Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "myheader.h"
- #include MODUL
- void dodawanieMacierzy(int *tab1, int *tab2, int SIZE);
- int mac_mac(int * defaults)
- {
- alex1();
- int *a, *b, *c = NULL;
- // pobieranie rozmiaru
- int size = 3;
- const int rozm = size * size * sizeof (*a);
- a = malloc(rozm);
- printf("Zaalokowano bajtow: %d\n", rozm);
- for (int i = 0; i < size; i++)
- {
- for (int k = 0; k < size; k++)
- {
- *(a + i*k + k) = *(defaults + i*k + k); // TODO
- printf( "%d " , *(a + i*k + k) );
- }
- printf("\n");
- }
- {
- int rozmiar;
- int **wsk1;
- int **wsk2;
- int **wsk3;
- do{
- printf("Podaj rozmiar macierzy: ");
- scanf("%d", &rozmiar);
- system("CLS");
- }while(rozmiar <= 1);
- wsk1=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy A
- if(wsk1==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk1[i]==NULL)
- return -1;
- }
- wsk2=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy B
- if(wsk2==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk2[i]==NULL)
- return -1;
- }
- wsk3=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy C
- if(wsk3==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk3[i]==NULL)
- return -1;
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy A
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
- scanf("%d",&wsk1[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy B
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
- scanf("%d",&wsk2[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Mnożenie macierzy A i B
- {
- for(int k = 0; k < rozmiar; k++)
- {
- for(int j = 0; j < rozmiar; j++)
- {
- wsk3[i][k] += wsk1[i][j] * wsk2[j][k];
- }
- }
- }
- printf("Macierz A\n"); //Wyswietlenie macierzy A
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk1[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz B\n"); //Wyswietlenie macierzy B
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk2[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz C\n"); //Wyswietlenie macierzy C
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk3[i][k]);
- }
- printf("\n");
- }
- // system("PAUSE");
- // system("CLS");
- // break;
- }
- if( defaults != NULL )
- {
- }
- }
- int main()
- {
- int wybor_programu;
- char haslo[4];
- int defaults[] = {
- 1,2,3,
- 4,5,6,
- 7,8,9
- };
- // char ch;
- do
- { break;
- system("CLS");
- printf("Podaj haslo: ");
- gets(haslo);
- //for(int i = 0; i < 4; i++)
- // {
- // ch = getchar();
- // haslo[i] = ch;
- // ch = '*';
- // printf("%c", ch);
- // }
- }while(strcmp(haslo, "1111") != 0);
- system("CLS");
- do
- {
- system("CLS");
- printf("Kalkulator macierzy kwadratowych. Wybierz jedna z opcji\n\n");
- puts("1 Dodawanie macierzy");
- puts("2 Odejmowianie macierzy");
- puts("3 Mnozenie macierzy przez skalar");
- puts("4 Mnozenie macierzy przez macierz");
- puts("5 Odwracanie macierzy 3x3");
- puts("6 Zakoncz program");
- char tmp;
- scanf("%c", &tmp);
- wybor_programu = atoi(&tmp);
- switch (wybor_programu)
- {
- case 1:
- {
- //int tab1[][];//={{1,2,3,4},{4,6,7,8},{9,8,7,6},{5,4,3,2}};
- //int tab2[][];//={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}};
- //int tab3[][];//={0};
- int rozmiar;
- int **wsk1;
- int **wsk2;
- int **wsk3;
- do{
- printf("Podaj rozmiar macierzy: ");
- scanf("%d", &rozmiar);
- system("CLS");
- }while(rozmiar <= 1);
- wsk1=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy A
- if(wsk1==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk1[i]==NULL)
- return -1;
- }
- wsk2=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy B
- if(wsk2==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk2[i]==NULL)
- return -1;
- }
- wsk3=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy C
- if(wsk3==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk3[i]==NULL)
- return -1;
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy A
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
- scanf("%d",&wsk1[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy B
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
- scanf("%d",&wsk2[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Dodanie macierzy A do B
- {
- for(int k = 0; k < rozmiar; k++)
- {
- wsk3[i][k] = wsk1[i][k] + wsk2[i][k];
- }
- }
- printf("Macierz A\n"); //Wyswietlenie macierzy A
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk1[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz B\n"); //Wyswietlenie macierzy B
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk2[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz C\n"); //Wyswietlenie macierzy C
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk3[i][k]);
- }
- printf("\n");
- }
- system("PAUSE");
- system("CLS");
- break;
- }
- case 2:
- {
- // int tab1[4][4]={{1,2,3,4},{4,6,7,8},{9,8,7,6},{5,4,3,2}};
- //int tab2[4][4]={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}};
- //int tab3[4][4]={0};
- int rozmiar;
- int **wsk1;
- int **wsk2;
- int **wsk3;
- do{
- printf("Podaj rozmiar macierzy: ");
- scanf("%d", &rozmiar);
- system("CLS");
- }while(rozmiar <= 1);
- wsk1=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru pierwszej tablicy
- if(wsk1==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk1[i]==NULL)
- return -1;
- }
- wsk2=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru pierwszej tablicy
- if(wsk2==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk2[i]==NULL)
- return -1;
- }
- wsk3=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru pierwszej tablicy
- if(wsk3==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk3[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk3[i]==NULL)
- return -1;
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy A
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
- scanf("%d",&wsk1[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy B
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj liczbe macierzy B [%d][%d]: ", i, k);
- scanf("%d",&wsk2[i][k]);
- }
- printf("\n");
- }
- for(int i = 0; i < rozmiar; i++) //Odejmowanie macierzy B od A
- {
- for(int k = 0; k < rozmiar; k++)
- {
- wsk3[i][k] = wsk1[i][k] - wsk2[i][k];
- }
- }
- printf("Macierz A\n"); //Wyswietlenie macierzy A
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk1[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz B\n"); //Wyswietlenie macierzy B
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk2[i][k]);
- }
- printf("\n");
- }
- printf("\n\n");
- printf("Macierz C\n"); //Wyswietlenie macierzy C
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk3[i][k]);
- }
- printf("\n");
- }
- system("PAUSE");
- system("CLS");
- break;
- }
- case 3:
- {
- int rozmiar;
- int skalar;
- int **wsk1;
- int **wsk2;
- do{
- printf("Podaj rozmiar macierzy: ");
- scanf("%d", &rozmiar);
- system("CLS");
- }while(rozmiar <= 1);
- do{
- printf("Podaj skalar: ");
- scanf("%d", &skalar);
- system("CLS");
- }while(skalar == 0);
- wsk1=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy A
- if(wsk1==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk1[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk1[i]==NULL)
- return -1;
- }
- wsk2=(int**)malloc( rozmiar * sizeof(int*)); //Alokacja rozmiaru macierzy B
- if(wsk2==NULL)
- return -1;
- for(int i = 0; i < rozmiar; i++)
- {
- wsk2[i]=(int*)malloc( rozmiar * sizeof(int));
- if(wsk2[i]==NULL)
- return -1;
- }
- for(int i = 0; i < rozmiar; i++) //Wpisanie wartosci do macierzy A
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("Podaj libcze macierzy A [%d][%d]: ", i, k);
- scanf("%d",&wsk1[i][k]);
- system("CLS");
- }
- printf("\n");
- }
- for(int m = 0; m < rozmiar; m++) //Wpisanie wartosci do macierzy B
- {
- for(int n = 0; n < rozmiar; n++)
- {
- wsk2[m][n] = wsk1[m][n] * skalar;
- }
- printf("\n");
- }
- printf("Macierz A\n");
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk1[i][k]);
- }
- printf("\n");
- }
- printf("\nPomnozone przez skalar rowny %d, =\n\n", skalar);
- printf("Macierz B\n");
- for(int i = 0; i < rozmiar; i++)
- {
- for(int k = 0; k < rozmiar; k++)
- {
- printf("%d ", wsk2[i][k]);
- }
- printf("\n");
- }
- system("PAUSE");
- system("CLS");
- break;
- }
- case 4: mac_mac(defaults); break;
- case 5:
- {
- system("PAUSE");
- system("CLS");
- break;
- }
- default:
- printf("NaN %i \n", wybor_programu);
- break;
- }
- }while (wybor_programu != 6);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement