palindrome par morceau

palindrome par morceau - Algo - Programmation

Marsh Posté le 28-11-2004 à 14:08:07    

Salut,jai pas compris comment fonctionner lalgorithme qui donne si un mot est un palindrome(mot qui se lit des 2 sens:aNNa ..) :
 
fonction palin(tableau chaine(N),i,j:entier)
debut
     Si i>=j,
        retourner VRAI
     sinon
     Si chaine(i) different de chaine(j) alors
        retouner FAUX
     Sinon
         retourner palin(chaine,i+1,j-1)
     fsi
     fsi
     fsi
 
et ensuite faudrait que je resout le palindrome par morceau voila


Message édité par nohack le 28-11-2004 à 16:11:38
Reply

Marsh Posté le 28-11-2004 à 14:08:07   

Reply

Marsh Posté le 28-11-2004 à 14:14:21    

deja il serait bien de savoir :
 
type de la fonction palin ? booleen ??
i et j c'est quoi ??

Reply

Marsh Posté le 28-11-2004 à 14:17:39    

voila ce que je pense :
 
j'admet que i est la position du début et j position de fin
 

Code :
  1. Si i>=j, // si le mot est composé d'une seule lettre
  2.       retourner VRAI // alors palin
  3. Sinon
  4.    Si chaine(i) different de chaine(j) alors // si la premiere et derniere lettre sont différent alors c pas un palin
  5.         retouner FAUX
  6.      Sinon // si meme lettre
  7.          retourner palin(chaine,i+1,j-1) //on refait pareil avec le 2eme et l'avant dernière
  8.      fsi
  9.      fsi
  10.      fsi

Reply

Marsh Posté le 28-11-2004 à 14:56:20    

merci tomtom41 tout cest eclairé,bon la je dois mainyrant faire le palindrome par morceau quand jaurais touve quelque chose je reecrirai merci

Reply

Marsh Posté le 28-11-2004 à 15:17:21    

bon en fait jarrive pas a trouver ou plutot a ecrire le fait que quand on coupe le mot en 2,et que lon appelle  
la fonction palindrome(),la premiere partie du mot sera bien execute( palindrome(chaine(i)))mais apres si je met
palindrome(chaine(n)) il va regarder si la chaine(n) et non pas si la chaine(i+1..j)est un palindrome,et aussi
comment descendre dans larbre (ie si je decoupe le mot en 2,apres je redcoupe le mot jusqua atteindre 2 lettre)

Reply

Marsh Posté le 28-11-2004 à 18:02:19    

une reponse?

Reply

Marsh Posté le 28-11-2004 à 18:20:41    

Citation :

ecrire le fait que quand on coupe le mot en 2,et que lon appelle  
la fonction palindrome(),la premiere partie du mot sera bien execute


 
Qu'est-ce que tu racontes ?  [:austinou]
 
Qu'entends-tu par "découper" le mot en 2 ? Et c'est quoi, ton histoire de "descendre dans l'arbre" ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-11-2004 à 19:00:59    

bah par exemple
 
baanaan
1er etage
couper en ba anaan puis en baa naan puis en  baan aan...
          et apres on redescend encore(chaque mot decouper)
             an aan puis anaa nan....


Message édité par nohack le 28-11-2004 à 19:02:04
Reply

Marsh Posté le 28-11-2004 à 19:19:02    

à quoi ca sert ? je comprends pas du tout  [:chriscool007]  [:alberich]

Reply

Marsh Posté le 28-11-2004 à 19:26:44    

Avec un automate ce serai pas plus simple qu'avec des arbres ?

Reply

Marsh Posté le 28-11-2004 à 19:26:44   

Reply

Marsh Posté le 29-11-2004 à 11:35:40    

Attend,voila plus delements,ce que jai fait jai considerer la fonction palindrome precedemment definis,etcette fois je considere la fonction ppn(palindrome par morceaux),
ppn va prendre comme argument le tableau de caractere de la chaine a analyser,i pour debut de la chaine,j pour fin de la chaine.
 
fonction ppn(tableau chaine,i,j)
   Si palindrome(tableau) vrai
   retourner VRAI
    fin Si
   Pour i de 2 a f (/*f dernier element)
   SI ppn(tableau(i,f) vrai alors ppn(i+1,f)

Reply

Marsh Posté le 12-12-2004 à 14:12:42    

Il ne faudrait pas  différencier les cas pour les mots avec un nombre de lettres pairs et impairs ?
 
Parce que
 
A B C D C B A
A B C   C B A
 
sont des palydromes non ?
Ou alors faut juste ignorer la lettre du millieu.


---------------
/* Signature */
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed