Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. const int N = 100;
  7.  
  8. void citireImagine(bool a[N][N], int &m){
  9. cin >> m;
  10. for ( int i = 0; i < m; i++ )
  11. for ( int j = 0; j < m; j++ )
  12. cin >> a[i][j];
  13. }
  14.  
  15. void inversiune(bool a[N][N], int m){
  16. for ( int i = 0; i < m; i++ )
  17. for ( int j = 0; j < m; j++ )
  18. a[i][j] = !a[i][j]; /// Schimbam in alternativa lui
  19. }
  20.  
  21. void rotire(bool a[N][N], int m){
  22. ///Creem o copie
  23. bool c[N][N];
  24. for ( int i = 0; i < m; i++ )
  25. for ( int j = 0; j < m; j++ )
  26. c[i][j] = a[i][j];
  27.  
  28. ///Rotim la 90 de grade
  29. for ( int i = 0; i < m; i++ )
  30. for ( int j = 0; j < m; j++ )
  31. a[j][m-i-1] = c[i][j];
  32. }
  33.  
  34. void zoom(bool a[N][N], int &m){
  35. int n = m;
  36. m*= 2;
  37.  
  38. ///Creem o copie
  39. bool c[N][N];
  40. for ( int i = 0; i < n; i++ )
  41. for ( int j = 0; j < n; j++ )
  42. c[i][j] = a[i][j];
  43.  
  44. ///Parcurgem copia si rescriem valori cu varianta de zoom pe cea originala
  45. for ( int i = 0 ; i < n; i++ ){
  46. for ( int j = 0; j < n; j++ ){
  47. a[2*i][2*j] = a[2*i][2*j+1] = a[2*i+1][2*j] = a[2*i+1][2*j+1] = c[i][j];
  48. }
  49. }
  50. }
  51.  
  52. void transformari(bool a[N][N], int &m, char s[], int k){
  53. ///Parcurgem sirul de operatii si le tratam corespunzator
  54. for ( int i = 0 ; i < k; i++ ){
  55. if ( s[i] == 'I' )
  56. inversiune(a, m);
  57. if ( s[i] == 'R' )
  58. rotire(a, m);
  59. if ( s[i] == 'Z' )
  60. zoom(a, m);
  61. }
  62. }
  63.  
  64. void afisareImagine(bool a[N][N], int m){
  65. for ( int i = 0 ; i < m; i++ ){
  66. for ( int j = 0; j < m; j++ )
  67. cout << a[i][j] << " ";
  68. cout << "\n";
  69. }
  70. }
  71.  
  72. int main(){
  73. ///Rulare pe exemplu
  74. int m;
  75. bool a[N][N];
  76. char s[] = "RIRZ";
  77. citireImagine(a, m);
  78. transformari(a, m, s, 4);
  79. afisareImagine(a, m);
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement