Aller au contenu

Corrigé sujet 37 - Année : 2023⚓︎

Sujet 37 - 2022

Exercice 1⚓︎

🐍 Script Python
1
2
3
4
5
def recherche(elt,tab):
    for i in range(len(tab)-1,-1,-1):
        if elt==tab[i]:
            return i
    return -1

Commentaires

Le sujet demande de rechercher la dernière occurrence, la correction proposée ici parcourt la liste à l'envers et renvoie la première occurrence rencontrée. Il faut donc dans ce cas savoir à écrire un parcours à l'envers à l'aide de range. On peut faire aussi parcourir dans le sens normal jusqu'à la fin et mettre la jour l'indice à chaque fois qu'on rencontre la valeur:

🐍 Script Python
    def recherche(elt,tab):
        indice = -1
        for i in range(len(tab)):
            if tab[i] == elt:
                indice = i
        return indice

Exercice 2⚓︎

🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class AdresseIP:

    def __init__(self, adresse):
        self.adresse = adresse

    def liste_octet(self):
        """renvoie une liste de nombres entiers,
           la liste des octets de l'adresse IP"""
        return [int(i) for i in self.adresse.split(".")] 

    def est_reservee(self):
        """renvoie True si l'adresse IP est une adresse
           réservée, False sinon"""
        return self.liste_octet()[3]==0 or self.liste_octet()[3]==0 #(1)

    def adresse_suivante(self):
        """renvoie un objet de AdresseIP avec l'adresse 
           IP qui suit l’adresse self
           si elle existe et False sinon"""
        if self.liste_octet()[3] < 254:
            octet_nouveau = self.liste_octet()[3] + 1
            return AdresseIP('192.168.0.' + str(octet_nouveau)) #(2)
        else:
            return False
  1. Le dernier octet est le 4ème élément (donc celui d'indice 3) de la liste renvoyée par la méthode liste_octet. L'adresse est réservée lorsque ce dernier octect vaut 0 ou 255.
  2. Attention à la conversion de type, pour concaténer le début de l'adresse avec le dernier octet

Attention

La méthode split des chaines de caractères est utilisée sans explications ni exemples dans la méthode liste_octet. Bien comprendre que cette méthode permet de convertir une adresse comme "192.168.0.0" (une chaine de caractères) en [192,168,0,0] (liste d'entiers).