Partage
  • Partager sur Facebook
  • Partager sur Twitter

crypter et décrypter un message en morse en python

    12 janvier 2019 à 19:59:21

    Bonjour,

    j' ai choisis la spécialité Isn et j ai un exercice a faire mais je suis perdu car je dois faire un programme qui décrypte et crypte en morse en utilisant seulement des des listes ,des if et je dois en plus utiliser le code ascii avec des ord et des chr.

    Serait-il possible d avoir de l aide afin de réaliser ce projet et surtout me permettre de le comprendre et m améliorer

    Merci d avance

    -
    Edité par MathisChevalier1 12 janvier 2019 à 20:03:05

    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2019 à 20:06:10

      Commence par spéficier précisément le problème : concrètement que doit faire le programme ?

      Comment se présentent les données, surtout pour la partie morse, c'est représenté par des points et des traits ? Donc le programme doit prendre en entrée des chaines de caractères, et afficher en retour des chaines de caractères ?

      Ensuite, tu peux découper le problème en petits morceaux : avant de traduire un texte en morse, comment tu traduis un caractère en son équivalent morse, puis l'inverse ?

      Une fois que tu as ça il ne te reste plus qu'à généraliser à toute une chaine, ce qui revient, dans ta situation, à juste mettre une boucle autour pour traiter toute une chaine de caractères.

      Et si tu n'es pas à l'aise pour attaquer le code Python directement, prend un bout de papier et écris, fais des schémas si ça peut t'aider.

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        12 janvier 2019 à 20:11:20

        comment commencer par faire la correspondance morse lettre sans dictionnaire?

        j ai d abord prévu de passer de lettre a des chiffres grace au code Ascii puis passer de chiffres a morse

        j arrive a transformer une lettre en chiffre mais comment faire pour un mot entier?

        -
        Edité par MathisChevalier1 12 janvier 2019 à 20:31:35

        • Partager sur Facebook
        • Partager sur Twitter
          13 janvier 2019 à 8:31:32

          Tu refais la même chose pour chaque lettre du mot...

          Si tu a un code à nous montrer ce serait plus facile de discuter.

          Mais je ne vois pas du tout l’intérêt de passer par l'ascii.

          -
          Edité par thelinekioubeur 13 janvier 2019 à 8:32:12

          • Partager sur Facebook
          • Partager sur Twitter
            13 janvier 2019 à 10:25:57

            j ai fait ça:

            texteacrypter=input("tonmot :")

            texteacrypter=texteacrypter.lower()

            ordrealphabet=[]

            textedecrypter=[]

            for car in texteacrypter:

                chiffreacrypter=ord(car)-96

                ordrealphabet.append(chiffreacrypter)

                print(chiffreacrypter)

            print(ordrealphabet)

            J aimerais maintenant créer un fonction qui lorsque je lui donne le rang de la lettre dans l alphabet il me la retourne en morse

            -
            Edité par MathisChevalier1 13 janvier 2019 à 12:45:04

            • Partager sur Facebook
            • Partager sur Twitter
              13 janvier 2019 à 17:50:16

              Utilise le bouton </> quand tu veux mettre du code.

              Et tu n'as pas répondu à la question de LoupSolitaire : comment la partie morse doit-elle se présenter ?

              • Partager sur Facebook
              • Partager sur Twitter
                14 janvier 2019 à 20:09:14

                Bonsoir, 

                J'ai le même problème que Mathis. J'ai fais ça pour passer du morse au français:

                 mors = input("que voulez-vous traduire? (mettre un / a la fin de votre mot):")

                    temp = ""

                    for i in range(len(mors)):

                        if mors[i] != "/":

                            temp += mors[i]

                        else:

                            for j in range(len(morse)):

                                if temp == morse[j]:

                                    reponse.append(alphabet[j])

                            if temp == "":

                                reponse.append(" ")

                            temp = ""

                    print(*reponse, sep="")

                Le problème c'est que ma prof veut que j'utilise la fonction chr. Comment faire pour l'insérer? 

                Merci d'avance.

                • Partager sur Facebook
                • Partager sur Twitter
                  14 janvier 2019 à 20:11:19

                  si tu veux j ai réussi avec ord:

                   texteacrypter=input("ton mot :")

                      texteacrypter=texteacrypter.lower()

                      for car in texteacrypter:

                          chiffreacrypter=ord(car)-96

                          if chiffreacrypter<0:

                             chiffreacrypter=0

                          ordrealphabet.append(chiffreacrypter)

                          def cryptemoi(*ordrealphabet):

                              morsecode=""

                              for chiffre in ordrealphabet:

                                  morsecode += textedecrypter[chiffre]

                              return morsecode

                      print(cryptemoi(*ordrealphabet))

                  Mais en revanche j ai un problème pour décrypter:

                  textedecrypter=[' ','.-','-...' ,'-.-.' , '-..', '.','..-.' ,'--.', '....','..', '.---', '-.-','.-..', '--', '-.', '---', '.--.', '--.-',

                             '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..']

                  lettre=[" ","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]

                  f=input("mon morse:")

                  for car in f:

                      def decrypte(f):

                          x=""

                          for car in f:

                              g=textedecrypter.index(car)+96

                              g=chr(g)

                              x+=g

                          return x

                  print(decrypte(f))

                  Mais quand je rentre des tirets et des points vu que ca fait une par une ca écrit que des e et des t

                  -
                  Edité par MathisChevalier1 14 janvier 2019 à 20:16:30

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 janvier 2019 à 20:41:24

                    J'ai essayé de comprendre je comprend d'ou proviens l'erreur non plus

                    Mais je pense qu'il faut d'abord faire passer le morse en tels numéro de la liste puis faire passer en lettre.

                    ex: A->1

                    1-> .-

                    -
                    Edité par MorseCryptage 14 janvier 2019 à 20:43:44

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 janvier 2019 à 21:13:35

                      mais comment je peux faire ca sans utiliser de dictionnaire??

                      car quand je tape .- il ne comprend pas la lettre a dans ma liste mais e puis t

                      -
                      Edité par MathisChevalier1 14 janvier 2019 à 21:15:12

                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 janvier 2019 à 21:15:51

                        MathisChevalier1 a écrit:

                        Mais quand je rentre des tirets et des points vu que ca fait une par une ca écrit que des e et des t

                        Je pense que pour ça il n'y aura pas de solution miracle, il faut un séparateur entre les lettres en morse, par exemple un espace, avec un double espace entre les mots, ou un truc du même genre.

                        Autrement on peut pas différencier les lettres en morse. Les gens qui pratiquent laissent un petit silence entre les lettres, et un silence un peu plus long entre les mots pour que celui qui écoute puisse comprendre.

                        EDIT : Et utilisez les balises code pour poster du code, ça se fait avec le bouton </> de l'éditeur de message. L'avant dernier bouton de la liste. Je sais que l'éditeur merde un peu, mais bon, si vous êtes en IUT informatique, ça devrait être à votre portée.

                         texteacrypter=input("ton mot :")
                        
                            texteacrypter=texteacrypter.lower()
                        
                            for car in texteacrypter:
                        
                                chiffreacrypter=ord(car)-96
                        
                                if chiffreacrypter<0:
                        
                                   chiffreacrypter=0
                        
                                ordrealphabet.append(chiffreacrypter)
                        
                                def cryptemoi(*ordrealphabet):
                        
                                    morsecode=""
                        
                                    for chiffre in ordrealphabet:
                        
                                        morsecode += textedecrypter[chiffre]
                        
                                    return morsecode
                        
                            print(cryptemoi(*ordrealphabet))


                        C'est quand même plus lisible :)

                        -
                        Edité par LoupSolitaire 14 janvier 2019 à 21:20:13

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Blond, bouclé, toujours le sourire aux lèvres...

                          14 janvier 2019 à 21:21:08

                          je comprends mais malheuresement meme avec un séparateur il comprendra e puit t puis espace et encore e ou t

                          je ne sais pas quoi faire

                          excusez moi pour les balises


                          -
                          Edité par MathisChevalier1 14 janvier 2019 à 21:23:14

                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 janvier 2019 à 21:33:37

                            .

                            -
                            Edité par MorseCryptage 14 janvier 2019 à 21:36:57

                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 janvier 2019 à 21:36:44

                              commentfaireca sans de dictionnaire avec un chr et une fonction ???

                              Ca ne marche pas avec mon for car il fait caractère par cacatere et comprend pas que ca peut correspondre a 2

                              -
                              Edité par MathisChevalier1 14 janvier 2019 à 23:10:36

                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 janvier 2019 à 7:16:53

                                Concernant les séparateurs en morse, de mémoire il faut mettre un blanc d'une durée d'un point entre chaque trait/point, 3 blancs entre chaque lettre, et 5 blancs entre chaque mot.

                                J'avais codé un truc il y a quelques années. Mais c'était du vrai morse, ça faisait clignoter un machin quoi.

                                -
                                Edité par thelinekioubeur 15 janvier 2019 à 7:17:33

                                • Partager sur Facebook
                                • Partager sur Twitter

                                crypter et décrypter un message en morse en python

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown