Julien Sopena

TP 01 – Les tableaux en python : des listes.

Exercice 1: Dessine moi un tableau

Question 1.1 )

Écrire une fonction maximum qui retourne la plus grande valeur contenue dans un tableau d'entiers fourni en paramètre. Vous testerez votre fonction sur les tableaux [5,7,8,2,3,1] et [-6,-16,-3,-5].

Question 1.2 )

Écrire et tester une fonction test qui vérifie que les valeurs contenues dans le tableau sont comprises entre 1 et 39 et retourne le résultat de ce test.

Question 1.3 )

Écrire et tester une fonction dessiner qui affiche à l'écran des lignes de caractères X si les valeurs contenues dans le tableau sont comprises entre 1 et 39. Sur chaque ligne, les lignes étant ordonnées comme les indices du tableau, le nombre de caractères X est égal à la valeur contenue dans le tableau. Ainsi, pour le tableau [4,1,3] dessiner la fonction affichera :
  XXXX
  X
  XXX

Question 1.4 )

Écrire et tester une fonction dessinerDouble qui après la même vérification fait un affichage symétrique du dessin. L'affichage précédent devient alors :
  XXXXXXXX
     XX
   XXXXXX

Question 1.5 )

Pour terminer vous pouvez tester cette dernière fonction d'affichage sur le tableau suivant : [1,3,5,7,4,6,8,10,7,9,11,13,2,2,2]

Exercice 2: Carré magique

Un carré magique de taille n est un arrangement en carré de n2 valeurs. Ces nombres sont disposés de manière à ce que leurs sommes sur chaque rangée, sur chaque colonne et sur chaque diagonale soient égales. Un carré magique est dit normal s'il est rempli avec les nombres entiers compris entre 1 et n2 (inclus).

Le tableau suivant représente un carré magique de taille 5 :

15812417
16147523
22201364
321191210
92251811

Question 2.1 )

Exprimer, en fonction de n, la valeur constante S des sommes des lignes, colonnes et diagonales dans un carré magique normal.

Question 2.2 )

Écrire et tester une fonction afficherCarreMagique qui permet d'afficher un carré magique.

Question 2.3 )

Écrire et tester une fonction sommeLigne qui calcule la somme des valeurs contenues dans la ième ligne d'un carré.

Question 2.4 )

Écrire et tester une fonction sommeColonne qui calcule la somme des valeurs contenues dans la ième colonne d'un carré.

Question 2.5 )

Écrire et tester une fonction sommeDiag1 qui calcule la somme des valeurs contenues dans la diagonale NO-SE d'un carré.

Question 2.6 )

Écrire et tester une fonction sommeDiag2 qui calcule la somme des valeurs contenues dans la diagonale SO-NE d'un carré.

Question 2.7 )

Écrire et tester une fonction testCarreMagique qui teste si un carré est bien un carré magique normal.

Question 2.8 )

Écrire et tester une fonction carreMagique qui construit un carré magique normal de taille n, n impair, en plaçant les valeurs 1, 2, ..., n2 suivant le principe suivant :
  • On place la valeur 1 au milieu de la ligne 1,
  • On continue en montant en diagonale vers la gauche :
    • si cela conduit à déborder en haut ou à gauche, le nombre est placé dans la dernière ligne ou la dernière colonne. Par exemple, 2 est placé dans la dernière ligne, et 23 est placé dans la dernière colonne.
    • Si on atteint une case déjà remplie, le nombre est placé en dessous du nombre précédent ; cette dernière situation se produit chaque fois qu'on vient de placer un multiple de N. Par exemple, 6 est placé sous 5 et 11 est placé sous 10.

Question 2.9 )

A l'aide de l'ensemble de ces fonctions, écrire un programme qui construise et teste un carré magique normal d'au moins une case.

Designed by OWSD.org. Valid CSS & XHTML
Ce site et l'ensemble de son contenu est mis à disposition sous un contrat Creative Commons.
Creative Commons License