---
# System prepended metadata

title: 'POO : Application du cours'
tags: [POO Chapitre 2]

---

# POO : Application du cours
###### tags: `POO Chapitre 2`

:::info
[Lien du cours]
https://hacgggddkmd.io/@SOmMDwrmTHewWN2IEOBvnA/Hysoi6Reo
https://hackmd.io/@SOmMDwrmTHewWN2IEOBvnA/HkgmZQR-j
:::

Exercice 1 :
a.
```python=
#Exercice 1
#traitement pour les tuples:
def calculDistanceT(p1,p2):#p1 et p2 sont des tuples
    x=(p1[0]-p2[0])**2
    y=(p1[1]-p2[1])**2
    return (x+y)**(1/2)

#traitement pour les dictionnaires
def calculDistanceD(p1,p2):#p1 et p2 sont des dico
    x=(p1["x"]-p2["x"])**2
    y=(p1["y"]-p2["y"])**2
    return (x+y)**(1/2)

def calculDistanceP(self,p2):#p2 est un objet de type point
    x=(self.x-p2.x)**2
    y=(self.y-p2.y)**2
    return (x+y)**(1/2)

tuplepoint=(3,5)
dicopoint={"x":3,"y":5}
class Point:
    #constructeur
    def __init__(self,x,y):
        self.x=x
        self.y=y


#programme principale
objetpoint=Point(3,5)
tuplepoint(3,5)
dicopoint={"x":3,"y":5}

objetpoint2=Point(10,5)
dist=objetpoint.calculDistanceP(objetpoint2)
print(dist)

tuplepoint2=(10,5)
dicopoint2={"x":10,"y":5}
dist2=calculDistanceD(dicopoint,dicopoint)
```

b.

Exercice 2 :

Tableau de classe du jeu de cartes : 

![](https://i.imgur.com/WcE3ZHd.png)

```python=
from random import*

class Carte: # D´efinition de la classe
    couleurs= [("pique","coeur","carreaux","trèfle")]
    valeurs = {'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'valet':11,'dame':12,'roi':13,'as':14}
    def __init__(self,valeur,couleur): #constructeur
      self.valeur=valeur # 1er attribut {de 2 a 14}
      self.couleur=couleur # {'pique', 'carreau', 'coeur', 'trefle'}
   
    def nom(self):
    return (self.valeur,self.couleur)
    return self.valeur
    return self.couleur

class Paquet:
    def __init__(self):
        self.cartes = []
        for couleur in range(4):
            for valeur in range(1, 14):
                carte = Card(couleur, valeur)
                self.cartes.append(carte)
    def tirer():
         n = randint(0,53)
         return n.self

#programme principale
c1=Carte.nom
print(c1)
```

CORRECTION Exercice 2 :

```python=
#import de bibliotèque
from random import randint

#varianle globale
couleur=["trèfle","pique","coeur","carreaux"]
valeur=["valet","dame","roi"]

#constructeur
class Carte:
    def __init__(self,val=None,col=None):
        if val==None and col==None:
           self.valeur=randint(1,13)
           self.couleur=couleur[randint(0,3)]
        else:
            self.valeur=val
            self.couleur=col

    def nom(self):
        if self.valeur==1:
            return "as"+""+"de"+""+self.couleur
        elif self.valeur>1 and self.valeur<11:
            return str(self.valeur)+" "+"de"+" "+self.couleur
        else:
            return str(valeur[self.valeur-11])+" "+"de"+" "+self.couleur
class Paquet:
    def __init__(self):
        self.cartes=[]
        for i in couleur:
            for j in range(1,13):
                self.cartes.append(Carte(j,i))
    def tirer(self):
        carte=randint(0,51)
        return self.cartes[carte].nom()

#programme principale
p=Paquet()
print(p.tirer())
```

Exercice 3 : 

```python=
class Tranche(10, 20):
    def __len__(): #retourne la taille de la tranche
        taille=len[9]-len[0]
        return taille

    def __getitem__(s):#retourne le i-ème élement de la tranche.
        i=[s]
        return s

    def __setitem__(): #change la valeur du i-ème élement.

#programme principale

print(len())
```

