0% ont trouvé ce document utile (0 vote)
109 vues3 pages

Correction TD POO Python

Le document présente des exercices de programmation orientée objet en Python, incluant la définition de classes pour représenter des nombres complexes, des points et des segments, ainsi que l'héritage avec des rectangles et des carrés. Chaque exercice est accompagné d'une correction sous forme de code Python, illustrant les concepts de classes, méthodes et héritage. Les programmes permettent de tester les classes créées et d'afficher les résultats.

Transféré par

hassenessouri415
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
109 vues3 pages

Correction TD POO Python

Le document présente des exercices de programmation orientée objet en Python, incluant la définition de classes pour représenter des nombres complexes, des points et des segments, ainsi que l'héritage avec des rectangles et des carrés. Chaque exercice est accompagné d'une correction sous forme de code Python, illustrant les concepts de classes, méthodes et héritage. Les programmes permettent de tester les classes créées et d'afficher les résultats.

Transféré par

hassenessouri415
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Correction TD : POO avec Python

Exercice 1 :
Un nombre complexe s’écrit sous la forme : X= Réel + i * Img
Définir une classe NbreComplexe représentant un nombre complexe ayant comme attributs
reel (partie réelle) et img (imaginaire) et comme méthodes :
- Un constructeur permettant d’initialiser ses attributs.
- Une méthode conjuguer () qui retourne le conjugué du nombre complexe (On rappelle que le
conjugué de X s’écrit : Réel - i * Img).
- Une méthode module () qui retourne le module du nombre.
- Une méthode afficher () qui permet d’afficher le nombre sous la forme : X= Réel + i * Img.
Ecrire un programme qui permet de tester cette classe.
Correction :
class Complexe:
def __init__(self, reel, img):
[Link] = reel
[Link] = img
def conjuguer(self):
return Complexe([Link], -1*[Link])
def module(self):
import math
return [Link](([Link]**2) + ([Link]**2))
def afficher (self):
print([Link], '+ i*', [Link])
X=Complexe (1,2)
[Link]()

Exercice 2 :
Définir une classe Point avec un constructeur fournissant les coordonnées par défaut d’un
point du plan (par exemple : x = 0.0 et y = 0.0).
Définir une classe Segment dont le constructeur possède quatre paramètres : deux pour
l’origine et deux pour l’extrémité. Ce constructeur définit deux attributs : orig et extrem,
instances de la classe Point. De cette manière, vous concevez une classe composite : la
classe Segment est composée de deux instances de la classe Point.
Ajouter une méthode d’affichage.
Ecrire un programme qui permet de tester une instance de Segment initialisée par les valeurs
1, 2, 3 et 4.

1
Correction :
class Point:
def __init__(self, x, y):
self.x=x
self.y=y

class Segment:
def __init__(self, x1, y1, x2, y2):
[Link] = Point(x1, y1)
[Link] = Point(x2, y2)
def Afficher(self):
print("abscisse de l'origine=", [Link].x)
print("ordonnée de l'origine=", [Link].y)
print("abscisse de l'extrémité=", [Link].x)
print("ordonnée de l'extrémité=", [Link].y)

s = Segment(1, 2, 3, 4)
s. Afficher()

Exercice 3 : Héritage simple


Définir une classe Rectangle avec un constructeur donnant des valeurs (longueur et largeur)
par défaut et un attribut nom = "rectangle", une méthode d’affichage et une méthode surface
renvoyant la surface d’une instance.
Définir une classe Carre héritant de Rectangle et qui surcharge l’attribut d’instance : nom =
"carré".
Dans le programme principal, instanciez un Rectangle et un Carre et affichez-les.

Correction :
class Rectangle:
def __init__(self, longueur, largeur):
[Link] = longueur
[Link] = largeur
[Link] = "rectangle"
def surface(self):
return [Link]*[Link]
def Afficher(self):
print (" La longueur de",[Link], "est:",[Link])
print (" La largeur de",[Link], "est:",[Link])

class Carre(Rectangle):#Carre herite de Rectangle


def __init__(self, cote):
Rectangle.__init__(self, cote, cote)

2
[Link] = "carre" # surchage d'attribut d'instance
def Afficher(self):
print (" Le cote de",[Link], "est:",[Link])

r = Rectangle(12, 8)
[Link]()
c = Carre(10)
[Link]()

Vous aimerez peut-être aussi