C2 : Exercices

C2.E1 : Quelques boites

Dans cet exercice, on va travailler avec une classe Boite.

Les attributs de cette classe sont les suivants :

Les méthodes de cette classe sont les suivantes :

1) Définition de la classe

1.a. Écrire le code de la classe Boite où le constructeur de la classe prend trois entiers en paramètres : la longueur, la largeur et la hauteur.

1.b. Écrire quelques ligne du programme principal pour tester le bon fonctionnement des méthodes de la classe.

2) La plus grande de deux boites

2.a. Écrire le code d'une fonction maxi(b1, b2) qui prend deux boites en paramètres et renvoie la boite dont le volume est le plus grand.

2.b. Compléter le code du programme principal qui permet de tester la fonction.

Afficher la correction

1)

class Boite:
    def __init__(self, lo, la, h):
        self.longueur = lo
        self.largeur = la
        self.hauteur = h

    def volume(self):
        return self.longueur * self.largeur * self.hauteur

    def infos(self):
        return (str(self.longueur) + "×"
                 + str(self.largeur) + "×"
                 + str(self.hauteur))

# Programme principal
boite1 = Boite(2,3,4)
print("Les caractéristiques de la boite sont : " + str(boite1.infos()))
print("Le volume de la boite est : " + str(boite1.volume()))

2)

# Définitions des classes
class Boite:
    def __init__(self, lo, la, h):
        self.longueur = lo
        self.largeur = la
        self.hauteur = h

    def volume(self):
        return self.longueur * self.largeur * self.hauteur

    def infos(self):
        return (str(self.longueur) + "×"
                 + str(self.largeur) + "×"
                 + str(self.hauteur))

# Définitions des fonctions
def maxi(b1, b2):
    if b1.volume() > b2.volume():
        return b1
    else:
        return b2

# Programme principal
boite1 = Boite(2, 3, 4)
boite2 = Boite (3, 3, 3)
print("Première boite : " + str(boite1.infos()))
print("Deuxième boite : " + str(boite2.infos()))
print("La plus grande boite est : " + str(maxi(boite1, boite2).infos()))

C2.E2 (prolongement de l'exercice 1) : Encore des boites

Dans cet exercice, on reprendra la classe de l'exercice 1.

1) Écrire le code d'une fonction liste_boites(n) qui prend un nombre entier n en paramètre et renvoie une liste de n boites dont les tailles sont aléatoires.

2) Écrire le code d'une fonction maxi_liste_boites(liste) qui prend une liste de boites en paramètre et renvoie la boite dont le volume est le plus grand.

3) Compléter le programme principal pour tester les deux fonctions.

Afficher la correction
from random import randint

# Définitions des classes
class Boite:
    def __init__(self, lo, la, h):
        self.longueur = lo
        self.largeur = la
        self.hauteur = h

    def volume(self):
        return self.longueur * self.largeur * self.hauteur

    def infos(self):
        return (str(self.longueur) + "×"
                 + str(self.largeur) + "×"
                 + str(self.hauteur))

# Définitions des fonctions
def liste_boites(n):
    li_boites = []
    for _ in range(n):
        larg = randint(1, 50)
        long = randint(1, 50)
        haut = randint(1, 50)
        b = Boite(larg, long, haut)
        li_boites.append(b)
    return li_boites

def maxi_liste_boites(liste):
    plus_grande_boite = liste[0]
    for boite in liste:
        if boite.volume() > plus_grande_boite.volume():
            plus_grande_boite = boite
    return plus_grande_boite

# Programme principal
n = 5
liste = liste_boites(n)
for boite in liste:
    print("Boite : " + boite.infos() + " de volume " + str(boite.volume()))
boite_max = maxi_liste_boites(liste)
print("La plus grande boite est la boite " + boite_max.infos() + " de volume " + str(boite_max.volume()))

C2.E3 : Un petit jeu multijoueur

On souhaite programmer le jeu suivant :

Les règles sont similaires au jeu de l'activité C2.1_I, avec les spécificités suivantes :

1) Proposer l'interface d'une classe Joueur.

2) Implémenter la classe Joueur.

3) Écrire le programme principal du jeu.

Afficher la correction