Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<unistd.h>
  4. #include<time.h>
  5.  
  6. //> PRZYDZIAL PAMIECI DLA TABLICY
  7. int **macierz(int iloscWierszy, int iloscKolumn)
  8. {
  9. int **tab;
  10. int i;
  11.  
  12. // PRZYDZIELANIE PAMIECI DLA iloscWierszy WSKAZNIKOW DO DOUBLE
  13. tab=(int **) malloc( iloscWierszy*sizeof(int *) );
  14.  
  15. // BRAK ZADEKLAROWANEJ PAMIECI DLA WIERSZY
  16. if(tab==NULL)
  17. {
  18. fprintf(stderr,"Brak pamieci !\n");
  19. exit(1);
  20. }
  21.  
  22. // PRZYDZIELANIE PAMIECI DLA iloscWierszy*iloscKolumn LICZB TYPU DOUBLE
  23. tab[0]=(int *) malloc( iloscWierszy*iloscKolumn*sizeof(int) );
  24.  
  25. // BRAK ZADEKLAROWANEJ PAMIECI DLA KOLUMN
  26. if(tab[0]==NULL)
  27. {
  28. fprintf(stderr,"Brak pamieci !\n");
  29. free(tab); // ZWALNIANIE PAMIECI DLA WIERSZY
  30. exit(1);
  31. }
  32.  
  33. for(i=1; i<iloscWierszy; i++)
  34. tab[i]=tab[i-1]+iloscKolumn;
  35. return tab;
  36. }
  37.  
  38.  
  39. //> CZYSZCZENIE PAMIECI Z TABLICY
  40. void zwolnijMacierz(int **tab)
  41. {
  42. free(tab[0]); // ZWALNIANIE KOLUMN
  43. free(tab); // ZWALNIANIE WIERSZY
  44. }
  45.  
  46.  
  47. //> WYSWIETLANIE TABLICY
  48. void wyswietlMacierz(int **tab, int w_Max, int k_Max)
  49. {
  50. int wiersz, kolumna;
  51.  
  52. for(wiersz=0; wiersz<w_Max; wiersz++)
  53. for(kolumna=0; kolumna<k_Max; kolumna++)
  54. printf("[%d]%c", tab[wiersz][kolumna], kolumna==k_Max-1 ? '\n' : ' ');
  55. }
  56.  
  57. //> ANALIZOWANIE SASIADUJACYCH POL
  58. int pole(int **tab, int a, int b)
  59. {
  60. int i,j,n=0;
  61. for(i=a-1;i<=a+1;i++)
  62. for(j=b-1;j<=b+1;j++)
  63. {
  64. if(i!=a && j!=b)
  65. {
  66. if(tab[i][j]==1) n=n+1;
  67. }
  68. }
  69.  
  70. if(tab[a][b]==1 && (n<2 || n>3)) return 0;
  71. if(tab[a][b]==1 && (n<4 || n>1)) return 1;
  72. if(tab[a][b]==0 && n==3) return 1;
  73. else return 0;
  74. }
  75.  
  76. //> PROGRAM WLASCIWY
  77. int main()
  78. {
  79. int **tab1, **tab2;
  80.  
  81. int i,j,k;
  82. int zarodek;
  83. time_t tt;
  84. zarodek = time(&tt);
  85. srand(zarodek);
  86. int wier=30, kol=0;
  87.  
  88. // MACIERZ 1
  89. tab1=macierz(wier,kol);
  90.  
  91. for(i=0;i<wier;i++)
  92. for(j=0;j<kol;j++)
  93. tab1[i][j]=0;
  94.  
  95.  
  96. // MACIERZ 2
  97. tab2=macierz(wier,kol);
  98.  
  99. for(i=0;i<wier;i++)
  100. for(j=0;j<kol;j++)
  101. tab2[i][j]=0;
  102. // MACIERZE SA WYZEROWANE
  103.  
  104. for(k=0;k+1>0;k++)
  105. {
  106. printf("POKOLENIE %d\n\n", k+1);
  107. wyswietlMacierz(tab1,wier,kol);
  108. printf("\n");
  109. for(i=1;i<wier-1;i++)
  110. for(j=1;j<kol-1;j++)
  111. tab2[i][j]=pole(tab1,i,j);
  112.  
  113. for(i=0;i<wier;i++)
  114. for(j=0;j<kol;j++)
  115. tab1[i][j]=tab2[i][j];
  116. getchar();
  117. }
  118.  
  119. return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement