Advertisement
thebys

ntmhmw

Nov 16th, 2013
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #include <time.h>
  5.  
  6. int main()
  7. {
  8.     srand(time(NULL)); //nahodnost...
  9.     int matrixS;
  10.     int matrixR;
  11.     printf("Enter the matrix dimensions... eg. 10 10\n");
  12.     scanf("%d %d", &matrixR, &matrixS); //naceteni rozmeru...
  13.     int matrix[matrixR][matrixS]; //deklarace velky uzivatelsky definovany matice...
  14.     int submatrix[3][3]; //meh
  15.  
  16.  
  17.     for(int i = 0; i < matrixR; ++i) //generovani hlavni matice
  18.     {
  19.         for(int j = 0; j < matrixS; ++j)
  20.         {
  21.             //nahodne cislo...
  22.             int r = rand() % 3 + 1;
  23.             //upraveni pravdepodobnosti
  24.             if(r < 3) // 2/3 pravdepodobnost
  25.             {
  26.                 matrix[i][j] = 0;
  27.             }
  28.             else // 1/3 pravdepodobnost
  29.             {
  30.                 matrix[i][j] = 1;
  31.             }
  32.         }
  33.     }
  34.  
  35.     for(int i = 0; i < 3; ++i) //generovani submatice
  36.     {
  37.         for(int j = 0; j < 3; ++j)
  38.         {
  39.             //nahodne cislo...
  40.  
  41.             int r = rand() % 3 + 1;
  42.             //upraveni pravdepodobnosti
  43.             if(r < 3) // 2/3 pravdepodobnost
  44.             {
  45.                 submatrix[i][j] = 0;
  46.             }
  47.             else // 1/3 pravdepodobnost
  48.             {
  49.                 submatrix[i][j] = 1;
  50.             }
  51.         }
  52.     }
  53.  
  54.     printf("Hlavni matice \n");
  55.     for(int i = 0; i < matrixR; ++i) //vypis hlavni matice
  56.     {
  57.         for(int j = 0; j < matrixS; ++j)
  58.         {
  59.             if(matrix[i][j] == 0) // 2/3 pravdepodobnost
  60.             {
  61.                 printf(".");
  62.             }
  63.             else // 1/3 pravdepodobnost
  64.             {
  65.                 printf("X");
  66.             }
  67.         }
  68.         printf("\n");
  69.     }
  70.     printf("Submatice \n");
  71.     for(int i = 0; i < 3; ++i) //vypis submatice
  72.     {
  73.         for(int j = 0; j < 3; ++j)
  74.         {
  75.             if(submatrix[i][j] == 0)
  76.             {
  77.                 printf(".");
  78.             }
  79.             else
  80.             {
  81.                 printf("X");
  82.             }
  83.         }
  84.         printf("\n");
  85.     }
  86.     int stejnych = 0;
  87.     for(int i = 0; i < matrixR; ++i)
  88.     {
  89.         for(int j = 0; j < matrixS; ++j)
  90.         {
  91.             for(int k = 0; k < 3; ++k)
  92.             {
  93.                 for(int l = 0; l < 3; ++l)
  94.                 {
  95.                     if(matrix[i+k][j+l] == submatrix[k][l] && ((i+k) <= matrixR) && ((j+l) <= matrixS))
  96.                     {
  97.                         //chyba je v tom, ze ... == .X.
  98.                         //muze to bejt obsahem submatice (zkontrolovat)...
  99.                         //muze to bejt touhle podminkou
  100.                         //vetsinou to najde 9 shod, ale realne je jeich min (8)
  101.                         ++stejnych;
  102.                     }
  103.                     else
  104.                     {
  105.                         stejnych = 0;
  106.                         break; //tady by mozna melo smysl to goto...
  107.                     }
  108.                     if(9 == stejnych)
  109.                     {
  110.                         printf("9 Matice obsahuje submatici na [%d;%d]\n", i+1, j+1);
  111.                     }
  112.                 }
  113.             }
  114.         }
  115.     }
  116.  
  117.  
  118.  
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement