SERIE D'EXERCICES

Proposez Par : Groupe Genius Répétition

Des exercices  qui vont vous permettre de mieux comprendre les Notions de Variables , constantes , d'emplacement mémoire , Structure Conditionnelles & Boucles   .

 

 

Exercice 21 : Carre magique
Un carre magique est une matrice carree d'ordre n dont les éléments sont tous les entiers entre 1 et n2 telle que la somme des éléments de chaque colonne et la somme des éléments de chaque diagonale soient egale. Proposer un algorithme qui construit un carré magique d'ordre n donné.

 

Prinicpe :

Un carré magique est un carré divisé en lignes et en colonnes de nombres tels que la somme des nombres de chaque ligne, chaque colonne et chaque diagonale est la même. Voici les étapes pour créer un carré magique de taille n :

Placez le nombre 1 dans la première colonne de la première ligne.

Pour chaque nouveau nombre à insérer (2, 3, etc.), placez-le dans la colonne suivante de la ligne en haut. Si vous atteignez la fin de la ligne, passez à la ligne suivante et reprenez au début de la colonne. Si vous atteignez la fin de la dernière colonne, passez à la première colonne de la ligne en haut.

Si la case suivante est déjà occupée, placez le nouveau nombre dans la case immédiatement en dessous de la dernière case utilisée. Si cette case est également occupée, placez le nouveau nombre dans la case immédiatement en dessous de la case occupée et déplacez-vous à droite jusqu'à la prochaine case vide.

Répétez ces étapes jusqu'à ce que toutes les cases du carré soient remplies.

Voici un exemple de carré magique de taille 3 :

8 1 6

3 5 7

4 9 2

Et voici un exemple de carré magique de taille 4 :

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Il existe de nombreuses variantes de cet algorithme, mais cette méthode est l'une des plus couramment utilisées.


Par le Groupe Genius Répétition

Corrections

Exercice 1 :

Algorithme Carre_Magique ;

const  N = 5 ;

type MatEnt = tableau [ 1..N,1..N] de entier ;

var : j,l,col,i : entier ;

         t :MatEnt ;

Debut

co Réaliser par le Groupe Genius Repetition fco

Pour i de 1 à N faire

      Pour j de 1 à N faire

                     t [ i,j] := 0 ;

      fpr

fpr

i := 0 ; l := N div 2 ;  col := ( N+ 1) div 2 ; t [ l,col] := i ; 

tantque( i < N * N ) faire

     l := l - 1 ; col := col + 1 ;

    si ( l < 0 et col > N ) alors

         l := N-1 ;   col := col-1 ;

         sinon    

                 si ( col > N ) alors

                         col :=1

                         sinon    

                                 si ( l < N ) alors

                                     si  ( l = 1 et col = 2 ) alors

                                       l :=N ; col := col-1 ;

                                           sinon

                                                    l :=N ;

                                       fsi

                                 fsi

                       fsi

               fsi

        i := i + 1 ;

    si (   t [ l,col] = 0 ) alors

       t [ l,col] := i ;

        sinon

             l := l-1 ;

            col := col-1;

            t [ l,col] := i ;

     fsi

 ftque

        Ecricre ( ' Carré Magique !' );

Pour i de 1 à N faire

      Pour j de 1 à N faire

              Ecricre ( t [ i,j] );

      fpr

fpr

Fin.

 

 
5 votes. Moyenne 4.4 sur 5.

Commentaires

Ajouter un commentaire

Anti-spam