Examen python Informatique Carre Magique

Examen Informatique Carre Magique

Télécharger PDF

Première partie : Carré magique

Un carré magique est une matrice de n lignes et n colonnes, dont les coefficients sont les entiers appartenant à [1, n²] (chaque entier apparaissant une et une seule fois) et telle que les sommes des coefficients de chaque ligne, de chaque colonne et des deux diagonales du carré sont toutes les mêmes.

Par exemple :

4 9 2
3 5 7
8 1 6

est un carré magique : les sommes des coefficients de chaque ligne, de chaque colonne et des deux diagonales sont toutes égales à 15, et chaque entier de [1, 9] apparaît une et une seule fois.

Il est à noter que les fonctions demandées dans les exercices précédents peuvent être utilisées par la suite même si vous n’avez pas pu les définir.

I.1. (0,75 pts)

Écrivez une fonction d’entête sommeligne(M, numL) qui calcule la somme des coefficients de la ligne de numéro numL.

I.2. (0,75 pts)

Écrivez une fonction d’entête sommecol(M, numC) qui calcule la somme des coefficients de la colonne de numéro numC.

I.3. (0,75 pts)

Écrivez une fonction d’entête sommediago1(M) qui calcule la somme des coefficients de la première diagonale.

I.4. (0,75 pts)

Écrivez une fonction d’entête sommediago2(M) qui calcule la somme des coefficients de la deuxième diagonale.

I.5. (0,75 pts)

Écrivez une fonction appartenance(M) qui vérifie si tous les coefficients de la matrice M appartiennent à l’intervalle [1, n²], où n est la dimension de la matrice M (retourne True si c’est le cas et False sinon).

I.6. (3 pts)

Écrivez une fonction repetition(M) qui permet de vérifier si les coefficients de la matrice M ne se répètent pas (retourne True si c’est le cas et False sinon).

I.7. (2,5 pts)

Écrivez une fonction d’entête magique(M) qui vérifie si le carré représenté par la matrice M est un carré magique. (retourne True si c’est le cas et False sinon)

Deuxième partie : Élevage de lapins

Dans cet exercice, nous allons écrire des fonctions Python permettant de gérer un élevage de lapins. Dans un élevage moderne, chaque lapin porte un émetteur/récepteur GPS permettant ainsi de définir sa position exacte à tout instant. Pour ce faire, nous avons stocké les informations des lapins, se trouvant à l’intérieur de l’enclos, dans une matrice (info) à trois colonnes. Où chaque lapin est caractérisé par son code (première colonne) et sa position dans l’enclos, sous forme de coordonnées x et y (deuxième et troisième colonne). Le code du lapin et ses coordonnées x et y sont des valeurs entières (positives). Pour simplifier, on suppose que la ligne i de la matrice info contient les informations du lapin du code i et que, dans un instant t, deux lapins ne pourront pas avoir les mêmes coordonnées (x et y).

La longueur de l’enclos (longueur), sa largeur (largeur) sont des variables globales déclarées et initialisées. On supposera qu’un enclos a toujours une forme rectangulaire et que le premier lapin a le code 0.

II.1. (1,5 pts)

Écrivez une fonction d’entête interieur(info, code) permettant de vérifier qu’un lapin se trouve bien à l’intérieur de l’enclos. La fonction recevra le code du lapin et retournera ‘True’ si le lapin est à l’intérieur de l’enclos et ‘False’ sinon. La position des lapins – les coordonnées x et y – est donnée relativement à l’enclos, comme illustré sur la figure ci-dessus.

II.2. (2,5 pts)

Écrivez la fonction d’entête alarme(info) qui permet de tester si des lapins se sont échappés de l’enclos. La fonction retournera ‘False’ si aucun lapin ne s’est échappé et ‘True’ sinon.

II.3. (2,5 pts)

Nous aimerions maintenant identifier les lapins éventuellement en dehors de l’enclos. Pour ce faire, vous allez écrire une fonction d’entête lapin_echappes(info) permettant d’afficher les codes des lapins en dehors de l’enclos ainsi que leurs coordonnées (vous affichez un lapin par ligne).

II.4. (1,75 pts)

Écrivez une fonction d’entête distance(info, lap1, lap2) qui retourne la distance entre les deux lapins dont leurs codes sont passés en paramètre (lap1 et lap2). Il est à noter que la distance entre deux lapins lap1 et lap2 est exprimée par

√((x1 - x2)² + (y1 - y2)²)

où (x1, y1) et (x2, y2) sont respectivement les coordonnées des lapins dont les codes sont lap1 et lap2.

II.5. (2,5 pts)

Écrivez une fonction d’en-tête plus_proche_lapin(info, code) qui identifie le lapin le plus proche de celui dont le code est passé en paramètre. La fonction retourne le code du lapin le plus proche (supposé unique). On suppose également, qu’en plus du lapin dont le code est passé en paramètre, un autre, au minimum, est déjà enregistré dans la matrice info.

FAQ

Qu'est-ce qu'un carré magique ?

Un carré magique est une matrice de n lignes et n colonnes, dont les coefficients sont les entiers appartenant à [1, n²] (chaque entier apparaissant une et une seule fois) et telle que les sommes des coefficients de chaque ligne, de chaque colonne et des deux diagonales du carré sont toutes les mêmes.

Comment vérifier si un lapin est à l'intérieur de l'enclos ?

Pour vérifier si un lapin est à l'intérieur de l'enclos, il faut comparer ses coordonnées x et y avec les dimensions de l'enclos (longueur et largeur).

Comment calculer la distance entre deux lapins ?

La distance entre deux lapins est calculée en utilisant la formule de la distance euclidienne : √((x1 - x2)² + (y1 - y2)²), où (x1, y1) et (x2, y2) sont les coordonnées des deux lapins.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne