Académique Documents
Professionnel Documents
Culture Documents
« La réalisation de vos devoirs est un travail personnel permettant d’évaluer vos acquisitions et de construire
votre projet d’orientation. Sauf consignes contraires, il est obligatoire de les réaliser dans les conditions
de l’examen, c’est-à-dire en temps limité, sans recopier des contenus issus de supports extérieurs au
sujet (internet, cours du CNED, manuels scolaires…). Le cas échéant, si vous avez besoin de vous référer
à un passage issu d’un support extérieur, mettez-le entre guillemets et citez votre source. Tout travail non
personnel sera sanctionné.»
Durée : 2 h 00 – Ce devoir comporte une partie orale asynchrone. Pour ce devoir, vous devez
rendre une copie et un fichier audio.
Carré magique
Pour chaque question qui demande l’écriture d’une fonction en Python, vous collerez une capture d’écran de votre
programme avec date et heure apparentes. Vos fonctions seront documentées (docstrings et commentaires utiles).
Considérons l’étude des carrés magiques en Python comme :
Consignes et questions
Comprendre comment est constitué un carré magique et dégager une structure Python permettant de le
représenter puis de concevoir de petites fonctions permettant de tester certaines propriétés d’un carré ou
d’effectuer certains calculs sur ce carré.
Toutes les réponses doivent être justifiées. Pour les questions 1 à 4, on considère l’exemple de carré donné
dans l’énoncé
1. C
omment pourrait-on représenter un tel carré en Python ? (2 points) On notera carre cette représenta-
tion. Donnez son implémentation en Python.
2.Que vaut len(carre) ? (1 point)
3.Que valent carre[2][0] et carre[1][2] ? (1 point)
4.Comment récupérer la valeur centrale du carré ? (1 point)
5.Définir une fonction somme_ligne(carre, k) qui prend un carré de dimension quelconque en paramètre
et qui renvoie la somme des nombres sur la ligne d’indice k du carré. (3 points)
Pour la fonction somme_ligne (carre, k) on pensera a parcourir chaque nombre de la ligne k avec une boucle
for et à accumuler tous ces nombres dans un cumul que l’on retourne à la fin.
6.En utilisant la fonction somme_ligne (même si vous n’avez pas trouvé son code), proposez une fonction
somme_lignes_egales(carre) qui vérifie que les sommes de tous les nombres de chaque ligne sont les
mêmes. (4 points)
7.Proposer à présent le code d’une fonction qui prend un carré de dimension quelconque en paramètre,
ainsi que le numéro k d’une colonne, et qui renvoie la somme des nombres de la colonne k. (3 points)
– Respecter le nommage proposé et s’en inspirer pour proposer vos propres fonctions.
– Le travail est déjà bien découpé en petites questions.
– Les fonctions demandées obéissent à une logique semblable, il faut s’en inspirer et les réutiliser
dans le code si besoin.