Partage
  • Partager sur Facebook
  • Partager sur Twitter

algorithme

Inverser

19 février 2017 à 21:58:06

Bonsoir,

soit l'exercice suivant :

Écrire une procédure récursive qui permet d’inverser une chaîne de caractères sans utiliser une chaîne temporaire. 

Solution :

Procédure Inverse ( var ch : chaine )
var
c : caractère
Début
    si ch = "" alors
          Inverse <-- ""
     sinon
      c <-- ch[LONG(ch)]
      Effacer ( ch, long(ch), 1)
      Inverse (ch)
      ch <-- c + ch
     finsi
Fin

ce que j'ai pas compris pourquoi il a fait appel à la fonction (Inverse (ch))  avant (  ch <-- c + ch )

normalement il doit ajouter le caractère au chaîne et après appliquer la fonction sur le reste de chaîne. 


  • Partager sur Facebook
  • Partager sur Twitter
20 février 2017 à 22:35:06

AnnaIllunga a écrit:

ce que j'ai pas compris pourquoi il a fait appel à la fonction (Inverse (ch)) avant ( ch <-- c + ch )

Salut,

Regarde le cas d'arrêt. Si la chaîne est vide, alors Inverse retourne une chaîne vide. Par la suite, les appels à Inverse empilés dans la stack continueront leur exécution (ch<-- c+ch) et ajoutent donc le dernier caractère de la chaîne d'entrée en tête de la chaîne retournée par Inverse.

-
Edité par Varamox 20 février 2017 à 22:35:35

  • Partager sur Facebook
  • Partager sur Twitter
21 février 2017 à 11:21:41

Bonjour,

Déplacé dans le forum "Autres langages".

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL