Guest User

Untitled

a guest
Jan 28th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. using namespace std;
  4. int zlicz (int ***tabl, int x,int y,int z);
  5. void umrzyj (int ***tabl, int x, int y, int z);
  6. int main(int argc, char** argv)
  7. {
  8.     srand (time(NULL));
  9.     int const x=100, y=100, z=100;
  10.     int los;
  11.     int*** tabl= new int**[x];
  12.         for(int i=0;i<x;++i)
  13.         {
  14.             tabl[i] = new int*[y];
  15.             for(int j=0;j<y;++j)  
  16.             {
  17.                 tabl[i][j]=new int[z] ;
  18.             }
  19.         }
  20.     for(int i=0;i<x;++i)
  21.     {
  22.         for(int j=0;j<y;++j)  
  23.         {
  24.             for (int k=0;k<z;++k)
  25.             {
  26.                 los=rand()%2;
  27.                 tabl[i][j][k]=los;
  28.             }
  29.         }
  30.     }
  31.     int ile, ile2;
  32.     ile=zlicz(tabl,x,y,z);
  33.     cout<<ile<<" ";
  34.     umrzyj(tabl,x,y,z);
  35.     ile2=zlicz(tabl,x,y,z);
  36.     cout<<ile2;
  37.     for(int i=0;i<x;++i)
  38.     {
  39.         for(int j=0;j<y;++j)  
  40.         {
  41.             for (int k=0;k<z;++k)
  42.             {
  43.                 delete [] tabl[i][j][k];
  44.             }
  45.         }
  46.     }
  47.     for(int i=0;i<x;++i)
  48.     {
  49.         for(int j=0;j<y;++j)  
  50.         {
  51.             delete [] tabl[i][j];
  52.         }
  53.     }
  54.     for(int i=0;i<x;++i)
  55.     {
  56.         delete [] tabl[i];
  57.     }
  58.     return 0;
  59. }
  60. int zlicz (int ***tabl,int x,int y,int z)
  61. {
  62.     int licz;
  63.     for(int i=0;i<x;++i)
  64.     {
  65.         for(int j=0;j<y;++j)  
  66.         {
  67.             for (int k=0;k<z;++k)
  68.             {
  69.                 licz=licz+tabl[i][j][k];
  70.             }
  71.         }
  72.     }
  73.     return licz;
  74. }
  75. void umrzyj (int ***tabl, int x, int y, int z)
  76. {
  77.     for(int i=0;i<x;++i)
  78.     {
  79.         for(int j=0;j<y;++j)  
  80.         {
  81.             for (int k=0;k<z;++k)
  82.             {
  83.                 bool sasiad_x_mniejszy = i == 0 || tabl[i-1][j][k] == 0;
  84.                 bool sasiad_x_wiekszy = i == x-1 || tabl[i+1][j][k] == 0;
  85.  
  86.                 bool sasiad_y_mniejszy = j == 0 || tabl[i][j-1][k] == 0;
  87.                 bool sasiad_y_wiekszy = j == y-1 || tabl[i][j+1][k] == 0;
  88.  
  89.                 bool sasiad_z_mniejszy = k == 0 || tabl[i][j][k-1] == 0;
  90.                 bool sasiad_z_wiekszy = k == z-1 || tabl[i][j][k+1] == 0;
  91.  
  92.                 if( sasiad_x_mniejszy && sasiad_x_wiekszy &&
  93.                     sasiad_y_mniejszy && sasiad_y_wiekszy &&
  94.                     sasiad_z_mniejszy && sasiad_z_wiekszy)
  95.                 {
  96.                        tabl[i][j][k] = 0;
  97.                 }      
  98.             }
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment