Besoin d'aide en prog

10lexique -  
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je cher a créé un programme qui mélange l'ordre des lettres des mot d'une phrase.
je m'explique :

"Sleon une edtue de l'Uvinertise de Cmabrigde, l'odrre des ltteers dnas un mtos n'a pas d'ipmrotncae, la suele coshe ipmrotnate est que la pmeirere et la dreneire soit a la bnnoe pclae.
Le rsete peut erte dnas un dserorde ttoal et vuos puoevz tujoruos lrie snas porlbleme.
C'est prace que le creaveu hmauin ne lit pas chuaqe ltetre elle-mmee, mias le mot cmome un tuot."

Voila c'est pour cette raison que mon prog me serai utile pour convertire de gardn texte pour des étude avec des dyslexiques et fonction du temps de lecture .

Je pence que le programme ne doit pas etre tres dure a faire avec des fonction strcat strcpy ou autre, seulement je suis nul en programmation, si qqn pouvait m'aider ce serait sympat !

Je conte sur vous !

11 réponses

  1. DaNot Messages postés 221 Statut Membre 163
     
    Salut,

    Bon courage...

    DaNot
    un Libre ouvert à la source...
    0
  2. 10lexique
     
    J'ai afit une erreu dans ma demande, ilfaut que la premiere et la derniere lettre soit a la bonne place donc on s'embete pas avec les mot - ou = a 3 lettres ... merci de votre aide j'ai besoin de vous !
    0
  3. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    salut,
    en quel langauge
    l'algo
    - recherche espace
    - couper ce qui il a avant l espace
    - prendre la taille de ce qu on a couper
    -si <=3 on fait rien
    - sinon melange dans une boucle for on change de place les caracteres de 1 à taille -2 le reste ne bougeant pas (tu melange comme tu veux inversion une sur 2 ou on retourne le mot as u wish)
    - on place le resultat dans une nouvelle chaine
    0
  4. 10lexique
     
    ca a l'aire bien ce que tu dit, seulement moi j'y connais rien le language est celui que vous voulez visual basic c c++ ça m'est égale .... mais faite comme si vous parlier a un bébé de 4 ans car j'y connais RIEN enfin, je sais comiler un source cPP c tout !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 10lexique
     
    Personne ne sais comment faire ?
    aider moi SVP !
    0
  7. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Bah oui c'est de l'algo. Ensuite il faut prendre un langage de programmation pour le créer.
    0
  8. esox_ch Messages postés 770 Statut Membre 49
     
    Comme dit seb :) . Ton truc est fesable avec a peu pres tout les langages de programmation ... je crois que mm avec les tuto de ce site tu peux en apprendre assez pour le creer ... A la limite tu peux mm le faire en JavaScript .. .ca sera pas vraiment un prog mais ca marchera tout aussi bien

    Eternel Questionneur. Seul et Unique membre de la : SPdLM
    => Société Protectrice des Langages Maltraités
    0
  9. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Bon c'est pas parfait et pas fignolé, mais ça fonctionne.
    Le programme en Python:

    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
    
    t = """
    Le forum de CommentCaMarche est librement ouvert pour permettre au plus grand nombre de discuter librement sur des sujets
     concernant l'informatique et les nouvelles technologies. Toutefois, afin de garantir la meilleure qualité dans les
     échanges et de protéger les utilisateurs des messages insultants ou inappropriés d'usagers indélicats, le forum est
     modéré a posteriori, ce qui signifie que des personnes accréditées (les modérateurs) ont la possibilité de supprimer
     les messages ne se conformant pas à la présente charte.
    """
    
    import random
    
    textefinal = ""
    for ligne in t.split("\n"):
        for mot in ligne.split(" "):
            mot = mot.strip()
            if len(mot)>3:
                lettres = list(mot)
                for nb in range(3):
                    i = random.randint(1,len(lettres)-2)
                    (lettres[i],lettres[i+1]) = (lettres[i+1],lettres[i])
                mot = "".join(lettres)
            textefinal = textefinal + mot + " "
        textefinal = textefinal + "\n"
    
    print textefinal
    


    Et ça donne par exemple:
    "Le furom de CommneCtaMarhce est lbriemnet ovuert puor permetrte
    au puls gnard nmrobe de discuetr lirbmeent sur des sjuets
    cconerannt l'niofrmtaique et les nouvleles technoolgsie.
    Touetfsoi, aifn de gaarntir la meilelure quiatlé dnas les
    écnhaegs et de proégetr les utlisiaeturs des msseaegs insultatns
    ou inapprporiés dus'aegrs idénlciats, le froum est modréé a
    posetriori, ce qui siginife que des peosrnnes accérditeés (els
    moérdtaeurs) ont la psoisiblité de suppriemr les msesages ne se
    cofonmrant pas à la préesnte cathre.
    "
    0
    1. 10lexique
       
      Merci bcp ça marche parfaitement j'ai installé python et je me débrouille pour convertire mes textes !

      C'est excelent ! Merci merci merci !!!!!!!
      0
  10. 10lexique
     
    J'interprete le script avec IDLE (python GUI), afin de formater le texte et melanger les lettres, seulement j'ai un probléme avec la premiére et la derniére lettre. j'obtien ça :

    "Le fuomr de ComnmetaCMarche est libremetn ovuter puor peremtter au psul grdna nomerb de dsiutcer lbirenmet sur des sjuets
    conecnrnat l'fniormatique et les nouvelles tcehnooliges. Tuotefois, aifn de garatnir la milleeure qualtié dsna les
    échangse et de poértger les utilisuaters des messagse insultanst ou ianpprporiés d'usagres inédlciat,s le frmou est
    mordéé a posteirori, ce qui sginfiie que des perosnesn accréditées (sel modérateu)sr ont la possbiliiét de supprmier
    les messaegs ne se conorfamnt pas à la presénte crhat.e"

    je pence qu'il y a un probleme d'interpretation ...
    comment puis je utiliser le script sans ce bug ? je vien de telecharger la derniere vertion de python !
    0
  11. 10lexique
     
    j'ai remplacé la ligne "i = random.randint(1,len(lettres)-2)"
    par la ligne "i = random.randint(1,len(lettres)-3)"

    Et ca marche ... pourtant j'ai afit ça au hasard !
    si qqn a le temps il pourait m'expliqué !!

    Merci a vous pour toute l'aide que vous m'avez aporté ! Je vous remerci du fodn du coeur !!!!!!!!!!!!!
    0
  12. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Je peux expliquer le programme:

    for ligne in t.split("\n"):
    t.split("\n") découpe le texte en lignes.
    Ensuite, on boucle sur cette liste de lignes ("ligne" prend successivement la valeur de chaque ligne).

    for mot in ligne.split(" "):
    Même principe: pour chaque mot de la ligne.

    mot = mot.strip()
    On retire d'éventuels espace devant et derrière le mot.

    if len(mot)>3:
    On ne modifie que les mots supérieurs à 3 lettres.

    lettres = list(mot)
    On récupère la liste des lettres constituant ce mot.

    for nb in range(3):
    On va effectuer 3 interversions de lettres

    i = random.randint(1,len(lettres)-2)
    On choisit un lettre au hasard dans ce mot.

    (lettres[i],lettres[i+1]) = (lettres[i+1],lettres[i])
    On intervertis cette lettre avec la lettre suivante.

    mot = "".join(lettres)
    On réassemble la liste de lettre pour reformer le mot.

    textefinal = textefinal + mot + " "
    On ajoute ce mot au texte.

    textefinal = textefinal + "\n"
    Et enfin on remet le retour à la ligne.
    (Sous Windows, utiliser plutôt "\r\n" à la place de "\n")

    print textefinal
    On affiche le texte final.
    0