N.S.I. WorkSpace T-Ev-EE,Terminale [Evaluation sommative] (Devoir surveillé) Exercice portant sur : Type abstrait – Programmation Objet – Modularité

[Evaluation sommative] (Devoir surveillé) Exercice portant sur : Type abstrait – Programmation Objet – Modularité

Categories:

Epreuve écrite de contrôle des acquis : connaissances et compréhension des notions

Sujet

Exercice 1

Soit le programme suivant :

Voici un aperçu de ce qui s’affiche dans l’explorateur de variables (Spyder) après exécution de ce programme :

Et voici enfin ce qui s’affiche quand on exécute ‘help(Date)’ dans la console :

Question 1 [1 point]Argumenter l’affirmation selon laquelle « Date » est une structure abstraite de données (ou que le type de « Date » est un type abstrait).

Question 2 [1 point] – Argumenter l’affirmation selon laquelle « aujourdhui », « demain » et « hier » sont des instances de la classe ‘Date‘ (une seule réponse globale)

On exécute ensuite l’instruction suivante :

Après exécution, voici ce qui s’affiche dans l’explorateur de variables (Spyder)

Voici la spécification fournie pour « jourSemaine() » :

On rajoute les instructions suivantes :

Question 3 [2 points] – L’exécution de l’instruction de la ligne 29 va :

  • déclencher une erreur « IndexError: list index out of range »
  • permettre d’affecter à la variable ‘ja’ la valeur « jeudi »
  • permettre d’affecter à la variable ‘ja’ la valeur « vendredi »
  • permettre d’affecter à la variable ‘ja’ la valeur « Numéro du jour de la semaine == 4 »

Recopier sur votre copie la réponse paraissant correcte et argumenter ce choix.

Exercice 2

En géométrie, un cercle peut-être caractérisé par un point appelé « centre » (c) et un segment appelé « rayon » (r) . A partir de quoi il est possible de calculer le périmètre du cercle : p = 2 × π × r.

Question 1 [1 point] – Implémenter en programmation objet, le constructeur d’une classe ‘Cercle’.

Question 2 [1 point] – Implémenter la méthode ‘perimetre()’ de cette classe. Pour la valeur de π on ajoutera l’instruction suivante : ‘from math import pi’

Question 3 [2 points] – Implémenter une méthode ‘copie()’ de la classe ‘Cercle’, telle que ‘c2 = c1.copie()’ fait que c2 est une nouvelle instance de la classe ‘Cercle’ ayant les mêmes valeurs d’attributs que c1.

On considère que cette classe est sauvegardée dans un module sauvegardé avec le nom de fichier ‘classCercle.py’.

Question 4 [2 points] – Écrire les instructions d’un programme qui permettent d’importer le module sauvegardé dans le fichier ‘classCercle.py’, puis d’instancier la classe ‘Cercle’, ensuite d’affecter à une variable ‘p’ la valeur du périmètre de l’objet ‘Cercle’ qui vient d’être déclaré et enfin de faire une copie de cet objet.

On considère que ce programme est ensuite sauvegardé dans un fichier dont le nom est ‘mainCercle.py’