Apprendre à programmer avec des cartes

Méthodologie

La conception d'une boucle tant que nécessite plusieurs points d'attention :

  • la situation avant d'entrer dans la boucle (pré-condition) est-elle celle souhaitée ?

Par exemple, l'instruction qui suit peut être source d'erreur.

while sommet_trefle(1) :

  deplacer_sommet(1,2)

En effet, la condition du tant que porte sur la couleur de la carte au sommet du tas 1. Pour cela on utilise la fonction sommet_trefle. Mais pour être utilisée, celle-ci est nécessite que le tas numéro 1 ne soit pas vide.

  • la situation à la sortie de la boucle (post-condition) est-elle bien celle souhaitée ?

  • la boucle ne risque-t-elle pas d'être infinie (problème de l'arrêt) ?

Par exemple, l'instruction qui peut conduire à une répétition infinie de déplacement d'une carte du tas 1 vers le tas 2, puis d'un retour de la carte déplacée vers son tas d'origine. En effet si le tas 1 n'est pas vide au moment d'exécuter cette instruction, la condition du tant que est satisfaite et l'action est exécutée, action qui aboutit à la même situation que celle de départ : le tas 1 ne sera jamais vide.

while tas_non_vide(1) :

  deplacer_sommet(1,2)

  deplacer_sommet(2,1)

ExempleExemples en vidéo avec le module cartes

Nous allons illustrer les différents concepts vus dans cette séquence.

Première utilisation du while sur ue nombre inconnu de carte
La boucle tant que avec un if imbriqué
La boucle tant que avec une instruction et un if imbriqué
Instruction conditionnelle composée dans la boucle tant que
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)