Partage
  • Partager sur Facebook
  • Partager sur Twitter

essai de faire un algo pour cet exo

    11 janvier 2018 à 16:51:04

    Bonjour tout le monde, je suis sur ce cours : https://openclassrooms.com/courses/apprenez-a-coder-avec-javascript/manipulez-les-chaines-de-caracteres

    j'ai un gros problème sur le leet speak pour bien comprendre je dois :

    créer une fonction qui prends en paramètre ce mot

    décomposez ce mot en plusieurs caractères

    convertir ces caractères en leet speak

    reconstituer le mot

    et retourner ce mot

    Pouvez vous me donner un tuyau svp ? merci

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      11 janvier 2018 à 19:24:11

      Plusieurs tuyaux:

      • Fais des recherches
      • N'ouvre pas plusieurs sujets (c.f. autre sujet)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        11 janvier 2018 à 19:34:56

        Je viens de répondre et tu es sur un forum bénévole: Rien n'est pressé et up un sujet d'il y a 1 heure ne va rien t'apporter.

        Le principe d'up est de déterrer ton sujet qui n'aurait pas eu de réponse depuis quelques jours, pour le faire remonter en tête de liste.

        • Partager sur Facebook
        • Partager sur Twitter
          11 janvier 2018 à 19:54:44

          Artemix a écrit:

          Plusieurs tuyaux:

          • Fais des recherches
          • N'ouvre pas plusieurs sujets (c.f. autre sujet)

          justement je fais des recherches meme sur w3cSchool je ne trouve rien il y a juste le replace simple et non sur une boucle for
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            11 janvier 2018 à 19:58:34

            https://openclassrooms.com/forum/sujet/regles-de-ce-forum-a-lire-avant-de-poster-1

            Nous ne donnons pas de code tout fait sur les forums : nous vous aidons à construire le votre, en vous expliquant et en corrigeant vos erreurs. Si vous posez une question, merci de toujours montrer ce que vous avez essayé de faire, même si c'est faux. Si vous oubliez, on vous le demandera : ne le prenez pas mal, c'est normal et nécessaire pour bien vous répondre.
            
            • Partager sur Facebook
            • Partager sur Twitter
              11 janvier 2018 à 20:06:34

              je suis désolé mais ca fait des heures que je suis sur leet speak qu'au final j'ai regardé la solution :( et quand j'ai vu le corrigé j'étais parti vraiment trop loin mais avec mon code j'ai fait ceci :

              var mot = prompt("Saisir un mot"); //Saisir un mot
              
              console.log("Le mot " + mot + " contient " + mot.length + " caractère(s)");
              console.log("Il s'écrit en minuscules " + mot.toLowerCase()); // Minuscule
              console.log("Il s'écrit en majuscules " + mot.toUpperCase()); // Majuscule
              
              
              
              
              ////////Nombre voyelle /////////////
              function compterNbVoyelles(mot) {
                  var voyelle = 0;
              
                  for (var i = 0; i < mot.length; i++) {
                      if (mot[i] === "a" || mot[i] === "A") {
                          voyelle++;
                      } else if (mot[i] === "e" || mot[i] === "E") {
                          voyelle++;
                      } else if (mot[i] === "i" || mot[i] === "I") {
                          voyelle++;
                      } else if (mot[i] === "o" || mot[i] === "O") {
                          voyelle++;
                      } else if (mot[i] === "u" || mot[i] === "U") {
                          voyelle++;
                      } else if (mot[i] === "y" || mot[i] === "Y") {
                          voyelle++;
                      }
                  }
                  return voyelle;
              
              }
              var consonne = mot.length - compterNbVoyelles(mot);
              
              console.log(compterNbVoyelles(mot) + " voyelle(s) et de " + consonne + " consonne(s)");
              
              
              
              
              /////Inverser un mot /////////////////////////
              function inverser(mot) {
                  var motInverse = "";
                  for (var i = mot.length; i >= 0; i--) {
                      motInverse += mot.charAt(i);
                  }
                  return motInverse;
              }
              console.log("Le mot inversé est " + inverser(mot));
              
              var motInverser = inverser(mot);
              if (motInverser.toLowerCase() === mot.toLowerCase()) {
                  console.log("Ceci est un palindrome");
              } else {
                  console.log("Ceci n'est pas un palindrome");
              }
              
              
              //////////////L33t Speak///////////////////
              function convertirEnLeetSpeak(mot) {
                  var leet = '';
                  for (var i = 0; i < mot.length; i++) {
                      if (mot[i] === 'a') {
                          leet = '4';
                      } else if (mot[i] === 'b') {
                          leet = '8';
                      } else if (mot[i] === 'e') {
                          leet = '3';
                      } else if (mot[i] === 'l') {
                          leet = '1';
                      } else if (mot[i] === 'o') {
                          leet = '0';
                      } else if (mot[i] === 's') {
                          leet = '5';
                      }
                      
                  }
              
                  return leet;
              
              }
              console.log(convertirEnLeetSpeak(mot));
              
              

              mais j'ai un probleme sur le leet speak

              -
              Edité par alex32123 11 janvier 2018 à 20:14:08

              • Partager sur Facebook
              • Partager sur Twitter
                11 janvier 2018 à 20:33:57

                function convertirEnLeetSpeak(mot) {
                    var leet = '';
                    for (var i = 0; i < mot.length; i++) {
                        if (mot[i] === 'a') {
                            leet = '4';
                        } else if (mot[i] === 'b') {
                            leet = '8';
                        } else if (mot[i] === 'e') {
                            leet = '3';
                        } else if (mot[i] === 'l') {
                            leet = '1';
                        } else if (mot[i] === 'o') {
                            leet = '0';
                        } else if (mot[i] === 's') {
                            leet = '5';
                        }
                         
                    }
                 
                    return leet;
                 
                }
                Cette fonction te retourne la transformation en leet pour la derniere lettre, car imaginons que on est au début et que ta variable i soit egale à 0, ca voudrait dire que leet vaut la valeur de ta premiere lettre mais en leet speak, mais ensuite tu ne fais rien avec et tu passes a la lettre suivante
                var a = ''
                a = 'b'
                a = 'c'
                
                // Ici a = 'c' et non a = 'bc'

                -
                Edité par Stelyus 11 janvier 2018 à 20:35:14

                • Partager sur Facebook
                • Partager sur Twitter
                Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                  11 janvier 2018 à 20:36:18

                  d'accord mais dans ce cas là quelle est la meilleure façon possible

                  -
                  Edité par alex32123 11 janvier 2018 à 20:44:22

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 janvier 2018 à 20:41:34

                    Je viens de t'expliquer pourquoi ca ne marchait pas
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                      11 janvier 2018 à 20:48:17

                      moi je comprends ceci :

                      décomposer les mots caractère par caractère

                      remplacer les caractères en leet

                      et reformuler le mot non ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 janvier 2018 à 20:54:46

                        Oui,

                        - Tu decomposes bien le mot,

                        Ok

                        - Tu ne remplace par les caracteres en leet,

                        Imaginons qu'on est le mot "ab",

                        pour i = 0 on a mot[i] qui est égale à "a", ok du coup leet = '4'.

                        pour i = 1 on a le mot[i] qui est égale à "b", ok du coup leet = '8'

                        ensuite tu retournes leet, du coup tu retournes 8

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                          11 janvier 2018 à 20:56:08

                          oui mais alors comment puis je faire 48 avec la concat ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 janvier 2018 à 21:10:28

                            leet = leet + '8'

                            Tu prend le leet d'avant et tu rajoutes '8'

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                              11 janvier 2018 à 21:22:12

                              donc si je fais pareil avec le mot saisi par l'utilisateur je dois faire leet++ non ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 janvier 2018 à 21:26:50

                                non la syntaxe ++ ne marche que avec des int
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                                  11 janvier 2018 à 21:33:02

                                  Non leet = leet + mot[i]
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Si vous voulez me mp, venez sur Discord (username: Stelyus#8984)
                                    11 janvier 2018 à 21:37:33

                                    ah oui javais oublié

                                    d'accord mais je pense qu'il y a plein d'autres erreurs

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    essai de faire un algo pour cet exo

                                    × 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