Algorithme qui inverse les lettres des mots

A voir également:Algorithme qui inverse les lettres des motsOn clqvier inverse les lettres ✓ - Forum - Windows Clavier inversé chiffres lettres ✓ - Forum - Windows Algorithme pour inverser les éléments d'un tableau - Conseils pratiques - Pascal Clavier écrit chiffres à la place des lettres ✓ - Forum - Windows Touches de clavier inversées ✓ - Forum - Windows

Bonjour,
J'ai un DM de NSI (numérique et sciences informatiques), dans un exercice on me demande d'inverser les lettres des mots, par exemple :
"Salut ca va" devient "tulaS ac av"

J'ai un début d'algorithme : def fonction_inverve(chaine):      ch = ""       for lettre in chaine :           ch = lettre + ch       return ch


Lorsque je rentre "Salut ca va" cela inverses les lettres de toutes la phrase en donnant "av ac tulaS" au lieu d'inverser les lettres de chaque mot.
Auriez- vous des idées pour remédier à ce problème.
Merci à ceux qui me répondront !

Forum

A voir également:Algorithme qui inverse les lettres des motsOn clqvier inverse les lettres ✓ - Forum - Windows Clavier inversé chiffres lettres ✓ - Forum - Windows Algorithme pour inverser les éléments d'un tableau - Conseils pratiques - Pascal Clavier écrit chiffres à la place des lettres ✓ - Forum - Windows Touches de clavier inversées ✓ - Forum - Windows

Web: www.shapebootstrap.net

3 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

à default de te donner du code, je te propose plus une piste de réfléxion.

Pour inverser les lettre d'un mot, ton algo doit déjà detecté les mots. On vas dire que pour l'instant on vas ignorer quelle agencement de lettre forme un mot ou pas, pour l'instant on vas dire qu'un mot est identifier par un signe de ponctuation, un espace ou une tabulation.

Donc, on peut imaginer une fonction qui, Des qu'elle recontre un espace ou une ponctuation, elle te retour tout les caractère d'avant. jusqu'a la dernier ponctuation.

exemple:
Bonjour,Comment tu vas ?

Fonction 1 :

vas retourner Bonjour à fonction 2 qui vas retourner le mot

puis Comment, puis tu puis vas

Des questions ?

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Généralement il ne faut commencer à écrire le code sans avoir une idée de toute la séquence. On doit imaginer le programme dans sa tête, écrire les étapes, quand c'est complexe on réalise un organigramme.


ref : http://www.electro-info.ovh/index.php?id=133

Pour ton exercice tu dois avoir 2 fonctions, l'une extrait un par un les mots d'une phrase, la seconde fonction va inverser les lettres d'un mot.

Pour la première, moi, je traiterais les caractères de la phrase dans une boucle, 1 par 1, ce n'est pas un blanc, je l'ajoute au mot futur, c'est un blanc, je passe le mot constitué précédemment à la seconde fonction chargée d'inverser les lettres.

Une autre façon de découper la phrase pourrait être comme tu l'avais évoqué d'utiliser la fonction split(), là tu vas traiter directement les mots découpés 1 par 1.

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Voila, j'ai enfin réussi !!
Voici mon code (un peu tordu certes, mais il marche):

def inverse(chaine):     touslesmots = chaine.split()     chaine2 = ""     chainefinale = ""     for numero_de_mot in range(len(touslesmots)):         un_mot = touslesmots[numero_de_mot]                  if un_mot == un_mot[1]:             for une_lettre in un_mot:                 chaine2 = une_lettre + chaine2             print(chaine2)         chainefinale = chaine2                  if un_mot > un_mot[1]:             for une_lettre2 in un_mot:                 chainefinale = une_lettre2 + chainefinale             print(chainefinale, end = " ")


Je vous remercie infiniment pour votre aide, lorsque je rentre "Salut ca va", cela me renvoi :
tulaS
ac
av
Mais vu que j'ai marquer : print(chainefinale, end = "") , cela me renvoie "tulaS ac av"
Pensez-vous qu"il y a un moyen de diminuer ce code ?
En tout cas je vous remercie beaucoup !

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Leave a Replay

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