Download - Carré Magique Cpp
![Page 1: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/1.jpg)
TP1:Carré MagiqueImplementation C++
Mohamed BoudchicheM.R.I.
27 décembre 2012
![Page 2: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/2.jpg)
main.cppSolution.h
Solution.cpp
main.cppSolution.hSolution.cpp
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 3: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/3.jpg)
main.cppSolution.h
Solution.cpp
main.cpp
Solution.hSolution.cpp
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 4: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/4.jpg)
main.cppSolution.h
Solution.cpp
main.cppSolution.h
Solution.cpp
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 5: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/5.jpg)
main.cppSolution.h
Solution.cpp
main.cppSolution.hSolution.cpp
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 6: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/6.jpg)
main.cppSolution.h
Solution.cpp
#include <cstdlib>#include <iostream>#include "Solution.h"using namespace std ;int main(int argc, char *argv[]){
int premier[]={1,2,3,4,5,6,7,8,9} ;int dernier[]={9,8,7,6,5,4,3,2,1} ;solution first(premier) ;solution last(dernier) ;solution curent ;int iteration=1 ;for(curent=first ;curent<=last ;curent++){
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 7: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/7.jpg)
main.cppSolution.h
Solution.cpp
if(curent.isMagic()) curent.print() ;iteration++ ;
}cout«"Nombre iteration : "«k«endl ;system("PAUSE") ;return 0 ;}
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 8: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/8.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 9: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/9.jpg)
main.cppSolution.h
Solution.cpp
class solution
{private :
int permt[9] ;public :
solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 10: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/10.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 11: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/11.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :
int permt[9] ;public :
solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 12: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/12.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 13: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/13.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :
solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 14: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/14.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;
solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 15: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/15.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;
solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 16: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/16.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;
solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 17: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/17.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;
void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 18: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/18.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;
bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 19: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/19.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;
bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 20: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/20.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;
solution& operator++(int) ;} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 21: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/21.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 22: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/22.jpg)
main.cppSolution.h
Solution.cpp
class solution{
private :int permt[9] ;
public :solution() ;solution(int []) ;solution( const solution&) ;solution& operator=(const solution&) ;void print() const ;bool isMagic() const ;bool operator<=(const solution&) ;solution& operator++(int) ;
} ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 23: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/23.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
solution : :solution(){}
solution : :solution(int a[9]){
for(int i=0 ;i<9 ;i++)permt[i]=a[i] ;
}solution : :solution(const solution& b){
for(int i=0 ;i<9 ;i++)permt[i]=b.permt[i] ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 24: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/24.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
solution : :solution(){}solution : :solution(int a[9]){
for(int i=0 ;i<9 ;i++)permt[i]=a[i] ;
}
solution : :solution(const solution& b){
for(int i=0 ;i<9 ;i++)permt[i]=b.permt[i] ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 25: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/25.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
solution : :solution(){}solution : :solution(int a[9]){
for(int i=0 ;i<9 ;i++)permt[i]=a[i] ;
}solution : :solution(const solution& b){
for(int i=0 ;i<9 ;i++)permt[i]=b.permt[i] ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 26: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/26.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
solution& solution : :operator=(const solution& b){
for(int i=0 ;i<9 ;i++)permt[i]=b.permt[i] ;
return *this ;}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 27: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/27.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
bool solution : :operator<=(const solution& last){
int k=0 ;for(int i=0 ;i<9 ;i++){
if(permt[i]<last.permt[i]) return true ;if(permt[i]=last.permt[i]) k++ ;
}if(k==9-1)return true ;else return false ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 28: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/28.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
solution& solution : :operator++(int n){
solution& copy = *this ;for (int a = 9 - 2 ; a >= 0 ; –a)
if (copy.permt[a] < copy.permt[a + 1])for(int b = 9 - 1 ;b>=0 ; –b)
if (copy.permt[b] > copy.permt[a]){
int t = copy.permt[a] ;copy.permt[a] = copy.permt[b] ;copy.permt[b] = t ;for (++a, b = 9 - 1 ; a < b ; ++a, –b)
{t = copy.permt[a] ;
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 29: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/29.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
copy.permt[a] = copy.permt[b] ;copy.permt[b] = t ;
}return copy ;
}return *this ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 30: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/30.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
bool solution : :isMagic() const{
int som = 15 ;//(9*(9*9 +1))/2 ;int S ;
//–––-> Lignefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++) S+=permt[i+j*3] ;if(som !=S) return false ;
}//–––-> Colonefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++)S+=permt[j+i*3] ;if(som !=S) return false ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 31: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/31.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
bool solution : :isMagic() const{
int som = 15 ;//(9*(9*9 +1))/2 ;int S ;//–––-> Lignefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++) S+=permt[i+j*3] ;if(som !=S) return false ;
}
//–––-> Colonefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++)S+=permt[j+i*3] ;if(som !=S) return false ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 32: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/32.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
bool solution : :isMagic() const{
int som = 15 ;//(9*(9*9 +1))/2 ;int S ;//–––-> Lignefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++) S+=permt[i+j*3] ;if(som !=S) return false ;
}//–––-> Colonefor(int j=0 ;j<3 ;j++){
S=0 ;for(int i=0 ;i<3 ;i++)S+=permt[j+i*3] ;if(som !=S) return false ;
} Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 33: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/33.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
//–––-> DiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[i+i*3] ;if(som !=S) return false ;//–––-> AntiDiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[3-1-i+i*3] ;if(som !=S) return false ;return true ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 34: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/34.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
//–––-> DiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[i+i*3] ;if(som !=S) return false ;
//–––-> AntiDiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[3-1-i+i*3] ;if(som !=S) return false ;return true ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 35: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/35.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
//–––-> DiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[i+i*3] ;if(som !=S) return false ;//–––-> AntiDiagonaleS=0 ;for(int i=0 ;i<3 ;i++)S+=permt[3-1-i+i*3] ;if(som !=S) return false ;return true ;
}
Etudiant: Mohamed Boudchiche TP1:Carré Magique
![Page 36: Carré Magique Cpp](https://reader034.vdocuments.us/reader034/viewer/2022052304/558a1e20d8b42af9178b46b6/html5/thumbnails/36.jpg)
main.cppSolution.h
Solution.cpp
solution() ; solution(int a[9]) ; solution(const solution& b)operator=(const solution& b)operator<=(const solution& last)solution& solution : :operator++(int n)bool solution : :isMagic() constvoid solution : :print() const
void solution : :print() const{
for(int i=0 ;i<3 ;i++){
cout « "+–-+–-+–-+"« endl ;for(int j=0 ;j<3 ;j++)
cout « "| "« permt[j+i*3] « " " ;cout « "+–-+–-+–-+"« endl « endl ;
}}
Etudiant: Mohamed Boudchiche TP1:Carré Magique