Méthodologie
Méthode :
Voici quelques principes méthodologiques concernant la conception d'instructions conditionnelle.
Étude des cas intervenant dans le problème
commencer par distinguer les différents cas,
Vérifier que ces cas sont bien exhaustifs (on n'oublie aucune situation)
Vérifier que ces cas ne sont pas redondants (cas exclusifs)
donner un exemple de comportement attendu de l'instruction pour chacun des cas
Pour chacun des cas
établir un test (expression booléenne) permettant de distinguer le cas
déterminer la séquence d'instructions à exécuter dans ce cas
Construire un jeu de tests qui permet de s'assurer de la validité du programme : ce jeu doit comprendre au moins un test pour chacun des cas envisagés.
Exemple :
Considérons une situation initiale où les tas numérotés de 1 à 3 contiennent un nombre quelconque non nul de cartes, et le tas 4 est vide.
init_tas(1,"(T+K+C+P)[T+K+C+P]")
init_tas(2,"(T+K+C+P)[T+K+C+P]")
init_tas(3,"(T+K+C+P)[T+K+C+P]")
init_tas(4,"")
L'objectif à atteindre est de déplacer la carte de plus grande valeur au sommet d'un des trois tas vers le tas 4.
Étude des cas
Il y a évidemment trois possibilités : c'est le tas 1 ou le tas 2 ou le tas 3.
Comment les distinguer ?
c'est le tas 1, si la carte au sommet du tas 1 est supérieure ou égale à celle du tas 2, et est supérieure ou égale à celle du tas 3. ?
c'est le tas 2, si la carte au sommet du tas 2 est supérieure ou égale à celle du tas 1, et est supérieure ou égale à celle du tas 3. ?
c'est le tas 3, si la carte au sommet du tas 3 est supérieure ou égale à celle du tas 1, et est supérieure ou égale à celle du tas 2.
Autrement dit c'est le tas i si la condition superieur(i,j) and superieur(i,k)
(dans laquelle j et k désignent les deux numéros de tas autres que i) est satisfaite.
Les conditions distinguant les trois cas ne sont pas exclusives (penser aux cas d'égalité).