Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include "compito.h"
  2. Palazzo::Palazzo(int n) {
  3.     if (n <= 0)
  4.         n = 1;
  5.     N = n;
  6.     piani=1;
  7.     F = new bool *[N];
  8.     F[0]=new bool[1];
  9.     F[0][0]=false;
  10. }
  11.  
  12. void::Palazzo::stampa() {
  13.     cout << '<' << piani << '>' << endl;
  14.         for (int i = 0; i < piani; i++) {
  15.             cout << "Piano " << i+1 << ": ";
  16.             for (int j = 0; j < i+1; j++) {
  17.                 if (F[i][j] == false)
  18.                     cout << "Chiusa ";
  19.                 else
  20.                     cout << "Aperta ";
  21.             }
  22.             cout << endl;
  23.         }
  24. }
  25.  
  26. Palazzo::Palazzo(Palazzo &p1){
  27.     F=new bool*[p1.N];
  28.     this->N=p1.N;
  29.     this->piani=p1.piani;
  30.  
  31.     for(int i=0;i<(this->piani);i++){
  32.         this->F[i]=p1.F[i];
  33.         for(int j=0;j<(this->piani);j++){
  34.             this->F[i][j]=p1.F[i][j];
  35.         }
  36.     }
  37. };
  38.  
  39. void::Palazzo::aggiungi(){
  40.     if(piani==N)
  41.         return;
  42.     piani++;
  43.     F[(piani-1)]=new bool[piani];
  44.     for(int i=0;i<piani;i++){
  45.         F[piani-1][i]=false;
  46.     }
  47. }
  48.  
  49. Palazzo::~Palazzo(){
  50.     for(int i=0;i<piani;i++)
  51.         if(F[i]!=NULL) {
  52.             delete[] F[i];
  53.         }
  54.         delete F;
  55. }
  56.  
  57. void::Palazzo::cambia(int a, int b) {
  58.     if(F[a-1][b-1])
  59.         (F[a-1][b-1])=false;
  60.     else
  61.         (F[a-1][b-1])=true;
  62. }
  63.  
  64. int Palazzo::operator!() {
  65.     int cont=0;
  66.     for(int i=0;i<piani;i++){
  67.         for (int j=0;j<i+1;j++){
  68.             if(F[i][j])
  69.                 cont++;
  70.         }
  71.     }
  72.     return cont;
  73. }
  74.  
  75. void Palazzo::operator%=(Palazzo a){
  76.     if(piani!=a.piani)
  77.         return;
  78.     for(int i=0;i<piani;i++) {
  79.             for (int j = 0; j < i + 1; j++) {
  80.                 if((a.F[i][j]==false)&&(F[i][j]==true) )
  81.                     F[i][j]=false;
  82.             }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement