Laboratoire/Devoir #7 : Classes en Python Hiver 2017

publicité
UNIVERSITÉ DE SHERBROOKE
DÉPARTEMENT D’INFORMATIQUE
CQP 112
Laboratoire/Devoir #7 : Classes en Python
Hiver 2017
Le but de ce laboratoire est de vous familiariser avec la lecture et l’écriture de scripts Python,
utilisant les classes.
Ce laboratoire devra être complété avant le 13 avril 2017 à 12h00.
Chaque groupe doît m’envoyer par courriel à [email protected], les fichiers générés au cours de ce laboratoire.
Exercice 1 : classe Pile
Les piles et les files sont des structures de données classiques permettant de stocker des éléments
pour les retirer ensuite dans un ordre dépendant de l’ordre de stockage. Une pile fonctionne suivant
le principe LIFO (Last In First Out), ce qui signifie que les derniers éléments ajoutés seront les
premiers à être retirés de la pile. À l’opposé, une file fonctionne suivant le principe FIFO (First In
First Out), ce qui signifie que les premiers éléments ajoutés seront aussi les premiers à être retirés.
Par exemple, si p est une objet de type pile, que les valeurs 1, puis 2, puis 3, sont stockées dans
p, alors le premier élément retiré de p sera 3. Si après avoir retiré 3, on stocke la valeur 4 dans p,
alors p contiendra les valeurs 1, 2 et 4, et le prochain élément retiré de p sera 4.
Si l est une objet de type liste, que les valeurs 1, puis 2, puis 3, sont stockées dans l, alors le premier
élément retiré de l sera 1. Si après avoir retiré 1, on stocke la valeur 4 dans l, alors l contiendra les
valeurs 2, 3 et 4, et le prochain élément retiré de l sera 2.
1. Écrire un programme pile.py dans lequel est définie une classe Pile contenant les attributs
et méthodes suivants :
— elements : liste d’entiers.
— ajouter_element(elem) : méthode permettant d’ajouter l’entier elem au début de la
liste d’entiers.
— retirer_element() : méthode retirant le premier élément de la liste d’entiers et retournant la valeur de l’élément retiré.
— taille() : méthode retournant le nombre d’éléments contenus dans la liste d’entiers.
— ajouter_Pile(autre_pile) : méthode retirant les éléments de autre_pile pour les
ajouter au fur et à mesure dans l’objet Pile appelant.
1
2. Récupérer le programme utilisation_pile.py à partir du site Web du cours et le placer
dans le même répertoire que le programme pile.py, puis exécuter le script
utilisation_pile.py en écrivant le résultat dans un fichier sortie_pile.txt.
Pour faire cela, taper au terminal la commande python utilisation_pile.py > sortie_pile.txt
3. Copier votre programme pile.py dans un fichier file.py et modifier le programme file.py pour
définir une classe File contenant les attributs et méthodes suivants :
— elements : liste d’entiers.
— ajouter_element(elem) : méthode permettant d’ajouter l’entier elem à la fin de la liste d’entiers.
— retirer_element() : méthode retirant le premier élément de la liste d’entiers et retournant la
valeur de l’élément retiré.
— taille() : méthode retournant le nombre d’éléments contenus dans la liste d’entiers.
— ajouter_File(autre_file) : méthode retirant les éléments de autre_file pour les ajouter au
fur et à mesure dans l’objet File appelant.
4. Récupérer le programme utilisation_file.py à partir du site Web du cours et le placer dans
le même répertoire que le programme file.py, puis exécuter utilisation_file.py en écrivant le
résultat dans un fichier sortie_file.txt.
Pour faire cela, taper au terminal la commande python utilisation_file.py > sortie_file.txt
Exercice 2 : Classe Rationnel
Un nombre rationnel est un nombre qui peut s’exprimer sous la forme d’un fraction nd où n et
d sont des nombres entiers (avec d non nul), n appelé le numérateur et d le dénominateur.
1. Récupérer le programme rationnel.py à partir du site Web du cours et y définir une classe
Rationnel contenant les attributs et méthodes suivants :
— num : entier.
— den : entier.
— additioner(autre_Rationnel) : méthode réalisant l’addition de l’objet Rationnel appelant avec autre_Rationnel, et stockant le résultat de l’addition dans l’objet Rationnel
appelant. Rappel : ab + dc = a×d+c×b
.
b×d
— multiplier(autre_Rationnel) : méthode réalisant la multiplication de l’objet Rationnel appelant avec autre_Rationnel, et stockant le résultat de la multiplication dans l’objet Rationnel
appelant. Rappel : ab × dc = a×c
b×d .
— simplifier() : méthode réalisant la simplification de l’objet Rationnel appelant. Rappel : ab =
a
pgcd(|a|,|b|)
b
pgcd(|a|,|b|)
. La fonction pgcd est déjà définie dans le programme rationnel.py.
2. Récupérer le programme utilisation_rationnel.py à partir du site Web du cours et le
placer dans le même répertoire que le programme rationnel.py, puis exécuter
utilisation_rationnel.py en écrivant le résultat dans un fichier sortie_rationnel.txt.
Pour faire cela, taper au terminal la commande python utilisation_rationnel.py > sortie_rationnel.txt
Exercice 3 : Soumission
1. Créer une archive nommée Labo7_NomEtudiant.tgz (remplacer NomEtudiant par votre
nom) contenant tous les fichiers générés au cours de ce laboratoire :
pile.py, file.py, rationnel.py, sortie_pile.txt, sortie_file.txt, sortie_rationnel.txt
2. M’envoyer l’archive par courriel à l’adresse [email protected].
2
Téléchargement