Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. void stampa(int*X, int n_ele, int colonne){
  5.     int nr=n_ele/colonne, resto=n_ele%colonne;
  6.     for(int i=0; i<nr; i++){
  7.         for(int j=0; j<colonne; j++)
  8.             cout<< X[i*colonne+j]<<' ';
  9.         cout<<endl;
  10.     }
  11.     for(int i=0; i< resto; i++)
  12.         cout<< X[nr*colonne+i]<<' ';
  13.     cout<< endl;
  14. }
  15.  
  16.  
  17.  
  18. //PRE=(p punta al primo elemento di X e gli altri parametri sono ben definiti)
  19. int& TV(int *X,int lim1,int lim2,int lim3,int n_ele,int fV,int nV,bool &b1){
  20.     int x=nV/lim2;
  21.     int y=nV%lim2;
  22.     int posizione = x*lim2*lim3 + y*lim3 + fV;
  23.     if(posizione<n_ele){
  24.         b1=true;
  25.     }
  26.     else{
  27.         b1=false;
  28.     }
  29.     return X[posizione];
  30. }
  31. //POST=(ok=true se l’elemento nV della V-fetta di indice f esiste ed è definito)
  32. // &&(se ok=true allora la funzione restituisce questo elemento per riferimento)
  33.  
  34.  
  35. int& TH(int *X,int lim1,int lim2,int lim3,int n,int fH,int nH,bool &b2){
  36.     int x= nH/lim3;
  37.     int y= nH%lim3;
  38.     int posizione = x*lim2*lim3 + fH*lim3 + y;
  39.     if(posizione < n){
  40.         b2=true;
  41.     }
  42.     else{
  43.         b2=false;
  44.     }
  45.     return X[posizione];
  46. }
  47.  
  48.  
  49.  
  50.  
  51. int main(){
  52.     int X[100],lim1,lim2,lim3,n_ele;
  53.     cin >>lim1 >> lim2 >> lim3 >> n_ele;
  54.     for(int i=0; i<n_ele;i++)
  55.         cin >> X[i];
  56.     bool stop=false, b1=true,b2=true;
  57.     while (!stop){
  58.         int fV,nV, fH,nH;
  59.         cin >> fV ;
  60.         if(fV==-1)
  61.             stop=true;
  62.         else{
  63.             cin >> nV >> fH >> nH;
  64.             int &y=TV(X,lim1,lim2,lim3,n_ele, fV, nV, b1);
  65.             int &z=TH(X,lim1,lim2,lim3,n_ele, fH, nH, b2);
  66.             //cout<<"b1= "<<b1<<" b2= "<<b2<<endl;
  67.             if(b1 && b2){
  68.                 int temp=y;
  69.                 y=z;
  70.                 z=temp;
  71.             }
  72.             else
  73.             cout<<"operazione non consentita"<<endl;;
  74.         }
  75.     }
  76.     stampa(X, n_ele, lim3);
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement