140 likes | 350 Views
Algo-Prog e n Ada. TD3. 2 IMACS. Romaric GUILLERM. guillerm@laas.fr. TD3 - Récursivité. TD3. Arbre d’appel pour n=3 et p=2 :. Resu =3. Combinaison(3,2). Resu =2. Resu =1. Combinaison(2,1). Combinaison(2,2). Resu =1. Resu =1. Combinaison(1,0). Combinaison(1,1). TD3. 17. 17.
E N D
Algo-Prog en Ada TD3 2 IMACS Romaric GUILLERM guillerm@laas.fr
TD3 Arbre d’appel pour n=3 et p=2 : Resu=3 Combinaison(3,2) Resu=2 Resu=1 Combinaison(2,1) Combinaison(2,2) Resu=1 Resu=1 Combinaison(1,0) Combinaison(1,1)
TD3 17 17 Somme( ) 9 8 + Somme( ) 4 + Somme( ) 5 5 + Somme() 0
TD3 • Rappel sur le type « String » : • C’est un tableau non-contraint de caractères • Type String isarray(Positive range <>) of Character; • On a accès aux attributs : first, last, length, …
TD3 • Version itérative : • Si le mot a une longueur de 0 ou 1 alors on retourne « true » • Sinon : • On calcul la demi longueur du mot : demi • Pouri de 0 à demi-1 • Si les caractères aux positions mot’first+i et mot’last-i sont différents alors on retourne « false » • Fin du si • Fin de la boucle pour • On retourne « true » si on n’a encore rien retourné • Fin du si
TD3 • Version itérative :
TD3 • Version récursive : • Si le mot a un longueur de 0 ou 1 alors on retourne « true » • Sinon : • Si les caractères en début et en fin du mot sont différents alors on retourne « false » • Sinon : • On retourne le résultat de la détermination de palindrome sur le mot privé de ses premier et dernier caractères • Fin du si • Fin du si
TD3 • Version récursive :
TD3 • Palindrome : • Écrire un programme qui saisit un mot fourni par l'utilisateur et affiche s'il s'agit ou pas d'un palindrome.
4 3 1 2 TD3 * * 1 * * false 2 true 1 * * false • L’idée : * false 3 4 false * * false * * 2 true * * 1 false * * A afficher ! 2 * * true *
TD3 • Algorithme : • Si la position donnée est différente de " . " alors : • on retourne « false » • Sinon si la position donnée se trouve sur un bord du labyrinthe alors : • on marque cette position de " *" • on affiche le labyrinthe • on retourne « true » • Sinon • on marque la position courranteP avec " * " • on cherche la sortie à partir de la case située àl’estde P • Si on n’a pas trouver de sortie alors : • on cherche la sortie à partir de la case située ausudde P • Si on n’a pas trouver de sortie alors : • on cherche la sortie à partir de la case située àl’ouestde P • Si on n’a pas trouver de sortie alors : • on chercher la sortie à partie de la case située aunordde P • Fin du si • Fin du si • Fin du si • on retourne le résultat de notre recherche dans les différentes directions • Fin du si