Exercices du 1er Juin 2005
Exercices IBD 1 / 2
Correction séance d'Exercices IBD N°10
Exercice : Fichiers - Organisation
1. Chaque enregistrement a pour longueur 25 + 15 + 2 + 2 + 40 + 25 + 4, soit 113 caractères au total. Il est donc possible de mettre que 9 enregistrements par bloc. Il faudrait 240/9, soit 27 blocs au minimum.
2. La fonction de hachage ne permet d’adresser que 10 blocs. Il est possible de stocker que 90 des 240 employés sans débordements. Les 17 blocs qui restent devront être utilisées pour les débordements.
3. f’ permet d’adresser 50 blocs, donc la fonction permet de mémoriser 450 enregistrements, ce qui semble à priori suffisant. Mais il y a 80% des 240, soit 192 employés répartis dans la tranche 30-45 ans. Ce qui donne en moyenne 12 employés de même âges, soit 3 débordements d’enregistrements par bloc. En tout, les 16 âges différents permettent de contenir que 144 enregistrements. Il y aura donc au minimum 6 blocs de débordement pour enregistrer les 48 autres employés.
4. 12 personnes en moyenne possèdent le même âge dans la tranche 30-45 ans. Les enregistrements possédant la même valeur de clé ne pourront pas être dispersés. L’une des fonctions possibles peut être, en prenant l’âge plus le numéro de l’adresse comme clé, la fonction suivante qui assure une certaine dispersion:
f(âge, numéro) = (âge * 3 + numéro) mod 30
Ou encore, en utilisant la fonction qui fait la somme des valeurs des lettres tel que val(a) = 1, val(b) = 2, .. et val(z) = 26
f(nom, prenom) = (Val(nom) + Val(prenom)) mod 30
Remarque: l’utilisation de modulo 30 laisse une marge par rapport au minimum de blocs nécessaire s’il y a des débordements.
5.
6. Suppression de “Sassi”
i) “Sassi” est remplacé par son successeur qui est “Stoll”, et ensuite supprimé.
ii) Les valeurs du noeud frère de gauche peuvent être redistribués.
Suppression de “Menoud”
i) “Menoud” est remplacé par son successeur qui est ”Mielke”, et ensuite supprimé.
: Menoud,16,6 : - : - :
: Kimberley,24,3 : - : - :
: Diallo,5,2 : Ferini,31,3 : - : : Sassi,22,1 : - : - :
: Stoll,36,8 : - : - : : Mielke,34,1 : Miguet, 26,5: - :
: Basso,32,2 : Buff, 31,6 : - :
: Dufaux,27,3 : - : - :
: Stoll,22,1 : - : - :
: - : - : - : : Mielke,34,1 : Miguet, 26,5: - :
i)
: Miguet, 26,5 : - : - :
: Stoll,22,1 : - : - : : Mielke,34,1 : - : - :
ii)
Exercices du 1er Juin 2005
Exercices IBD 2 / 2
ii) Il n’y a pas de possibilité de redistribuér des valeurs des noeuds frères, donc il faut concaténer le noeud vide avec son frère.
iii) Cette opération provoque que le noeud père devient vide, il est cependant possible de redistribuer les valeurs du noeud de gauche.
: Mielke,34,1 : - : - :
: Kimberley,24,3 : - : - : : Diallo,5,2 : Ferini,31,3 : - :
: Basso,32,2 : Buff, 31,6 : - :
: Dufaux,27,3 : - : - :
: Miguet, 26,5 : - : - :
: Stoll,22,1 : - : - : : - : - : - :
: Mielke,34,1 : - : - :
: Kimberley,24,3 : - : - : : Diallo,5,2 : Ferini,31,3 : - :
: Basso,32,2 : Buff, 31,6 : - :
: Dufaux,27,3 : - : - :
: Miguet, 26,5 : Stoll,22,1 : - : : - : - : - :
: Ferini,31,3 : - : - : : Diallo,5,2 : - : - :
: Kimberley,24,3 : - : - : : Basso,32,2 : Buff, 31,6 : - :
: Dufaux,27,3 : - : - :
: Mielke,34,1 : - : - :
: Miguet, 26,5 : Stoll,22,1 : - :