Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void display(int n,int m,int a[100][100])
- {
- for (int i=0; i<n; i++)
- {
- for (int j=0; j<m; j++)
- cout<<a[i][j]<<' ';
- cout<<endl;
- }
- }
- namespace spin
- {
- void spinby90_clockwise (int n,int m,int a[100][100])
- {
- int aux[100][100];
- for (int i=0; i<n; i++)
- for (int j=0; j<m; j++)
- aux[j][n-i-1]=a[i][j];//n-i+1 pt index=1
- display(n,m,aux);
- }
- void spinby180 (int n,int m,int a[100][100])
- {
- int aux[100][100];
- for (int i=0; i<n; i++)
- for (int j=0; j<m; j++)
- aux[i][j]=a[n-i-1][m-j-1];
- display(n,m,aux);
- }
- void spinby270_clocwise(int n,int m,int a[100][100])
- {
- int aux[100][100];
- for (int i=0; i<n; i++)
- for (int j=0; j<m; j++)
- aux[m-j-1][i]=a[i][j];
- display(n,m,aux);
- }
- }
- void spiral(int N,int M,int a[100][100])
- {
- int celule_parcurse=0,col_sf=M-1,col_inc=0,line_inc=0,line_sf=N-1;
- while (celule_parcurse < N * M)
- {
- // Partea de sus
- for (int j = col_inc; j <= col_sf; ++j)
- {
- cout<<a[line_inc][j]<<' ';
- ++celule_parcurse;
- }
- // Partea din dreapta
- // incepem de pe linia urmatoare pentru ca am inclus deja primul element
- // din dreapta in partea de sus
- for (int i = line_inc + 1; i <= line_sf; ++i)
- {
- cout<<a[i][col_sf]<<' ';
- ++celule_parcurse;
- }
- // Partea de jos
- // incepem de la col_sf - 1 deoarece deja am parcurs elementul
- // de la col_sf cand am parcurs partea din dreapta
- for (int j = col_sf - 1; j >= col_inc; --j)
- {
- cout<<a[line_sf][j]<<' ';
- ++celule_parcurse;
- }
- // Partea din stanga
- // setam inceputul si sfarsitul din for pentru a nu parcurge elementele
- // deja parcurse
- for (int i = line_sf - 1; i > line_inc; --i)
- {
- cout<<a[i][col_inc]<<' ';
- ++celule_parcurse;
- }
- ++line_inc;
- ++col_inc;
- --line_sf;
- --col_sf;
- }
- }
- int main()
- {
- int a[100][100],n,m;
- cin>>n>>m;
- for (int i=0; i<n; i++)
- for (int j=0; j<m; j++)
- cin>>a[i][j];
- cout<<"Matrice initiala:"<<endl;
- display(n,m,a);
- cout<<endl<<"Matrice rotita cu 90de grade:"<<endl;
- spin::spinby90_clockwise(n,m,a);//*/
- cout<<"rotita cu 180"<<endl<<endl;
- spin::spinby180(n,m,a);
- cout<<endl<<"Matricea rotita cu 270 de grade:"<<endl;
- spin::spinby270_clocwise(n,m,a);
- cout<<"parcurgerea in spriala:"<<endl;
- spiral(n,m,a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement