36
TP1:Carré Magique Implementation C++ Mohamed Boudchiche M.R.I. 27 décembre 2012

Carré Magique Cpp

Embed Size (px)

DESCRIPTION

Carré Magique Implémentation C++

Citation preview

Page 1: Carré Magique Cpp

TP1:Carré MagiqueImplementation C++

Mohamed BoudchicheM.R.I.

27 décembre 2012

Page 2: Carré Magique Cpp

main.cppSolution.h

Solution.cpp

main.cppSolution.hSolution.cpp

Etudiant: Mohamed Boudchiche TP1:Carré Magique

Page 3: Carré Magique Cpp

main.cppSolution.h

Solution.cpp

main.cpp

Solution.hSolution.cpp

Etudiant: Mohamed Boudchiche TP1:Carré Magique

Page 4: Carré Magique Cpp

main.cppSolution.h

Solution.cpp

main.cppSolution.h

Solution.cpp

Etudiant: Mohamed Boudchiche TP1:Carré Magique

Page 5: Carré Magique Cpp

main.cppSolution.h

Solution.cpp

main.cppSolution.hSolution.cpp

Etudiant: Mohamed Boudchiche TP1:Carré Magique

Page 6: Carré Magique Cpp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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