Vous êtes sur la page 1sur 5

Solution TD N°=06

Exercice 1
Exercice 2
Couverture des instructions {x=12}.
Couverture des arcs {x=5, x=12}.
Couverture des chemins {x=5, x=6, x=11, x=12}.

b. La procédure 'triangle' renvoie


0 si un côté est plus grand que la somme des 2
autres ou si un côté au moins est nul

a = 10 b = 3 c = 4
a = 3 b = 4 c = 10
a = 3 c = 10 b = 4
a=0b=3c=4
a=3b=0c=4
a=3b=4c=0
a=0b=0c=3
a=0b=3c=0
a=3b=0c=0
a=0b=0c=0
1 si les 3 côtés sont égaux
a=3b=3c=3
2 si 2 côtés sont égaux
a=3b=3c=4
a=3b=4c=3
a=4b=3c=3
3 dans les autres cas
a=3b=4c=5
Exercice 3

7 chemins possibles :

1 2 3,
1 2 4 5 6 3,
1 2 4 5 6 7,
1 2 4 5 8 5 6 3,
1 2 4 5 8 5 6 7,
1 2 4 5 8 5 8 5 6 3,
12 4 5 8 5 8 5 6 7.

Jeu d’essai correspondant :


a ab, a b, vide vide, aa ab, a a,
(aaa aab impossible car max longueur = 2),
aa aa

Exercice 4

a) C’est une erreur classique de fin de parcours de tableau. Quand les indices
commencent à 1, la boucle doit se terminer avec un <= nb éléments du tableau. Il
faudrait avoir while ( (not found ) and ( counter <= number_of_items ) loop ...
b)
c) avec number_of_items = 0 on passe par les deux branches else des if en dehors
du while;
avec number_of_items = 3 et desired_element au rang 2 de la table on boucle deux
fois en passant une fois dans la branche then et une fois dans la branche else du if
dans le while et on termine par la branche then du if final. On couvre donc bien tous
les arcs.

d) Le problème est que seule la partie not found de la condition du while est testée
(la première fois avec la valeur true et la seconde fois avec la valeur false). La partie
counter < number_of_items est seulement testée à true.
Pour tester à faux cette deuxième partie il faut un test comme (number_of_items = 3,
desired_element au rang 3 de la table). Avec ce test, on s’aperçoit que le programme
ne trouve pas l’élément à cause de l’erreur de programmation.

Vous aimerez peut-être aussi