Apprendre à programmer avec des cartes

Méthodologie

Méthode

Voici quelques principes méthodologiques concernant la conception d'instructions conditionnelle.

  1. É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

  2. 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

  3. 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é).

ExempleImbrication de "if"

Imbrication de if

ExempleVers une autre solution sans imbrication de if

Sans imbrication de if
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Laetitia Jourdan, Éric Wegrzynowski, Léopold Weinberg. FIL - IEEA - Univ. Lille1. http://www.fil.univ-lille1.fr Paternité - Pas d'Utilisation CommercialeRéalisé avec Scenari (nouvelle fenêtre)