CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Javascript] Deux mots anagrammes ?

ClaraOswin
ClaraOswin
Niveau 10
05 mars 2014 à 12:13:10

Bonjour à tous !

Je débute dans la programmation et tout le tralala, et je dois "écrire un prédicat qui indique si deux mots passés en paramètre sont anagrammes." :oui:

Je travaille avec Notepad++, en Javascript, et voici ce que j'ai fait pour le moment :

var mot1 = prompt("Saisissez votre premier mot :");
var mot2 = prompt("Saisissez le second mot :");

function Anagramme(mot1,mot2) {

if ((mot1.length != mot2.length))
{
document.write("Ce ne sont pas des anagrammes !");
return false
}

if ((mot1.length == mot2.length))

C'est ici que je bloque :( ...
Si les deux mots n'ont pas le même nombre de caractères, ce ne sont pas des anagrammes, c'est logique, mais s'ils ont le même nombre de caractères, je ne sais pas trop comment faire pour demander au programme de vérifier chaque caractère, de comparer les caractères du premier mot avec ceux du deuxième :( (car ils peuvent avoir les mêmes caractères dans le désordre et ce seront des anagrammes :( ...)

Il faudrait trouver une commande permettant de "décomposer" chaque caractère du premier de mot et de vérifier si le premier caractère est présent dans le second mot, de même pour le second caractère etc... jusqu'à la fin du premier mot (m'voyez ? :noel: )

J'avais pensé à créer une variable i, pour écrire un "pour i allant du premier au dernier caractère du premier mot, i prend la valeur i+1" (c'est à dire isoler chaque caractère du premier mot, "balayer" les caractères du premier mot en quelques sortes :doute: ), et créer une variable j pour faire pareil dans le second mot :doute: ...
Et après mettre "si i=j, alors ce sont des anagrammes" :doute:

Mais sans succès ... :hap:

Je ne sais pas si je m'y prends bien, de l'aide serait la bienvenue :noel:

A noter que je débute dans la matière, notre professeur d'info' nous a demandé de faire ça pour la rentrée mais je patauge :( (je suis en terminale S spécialité informatique) ... donc voila, merci d'avance :o)) ...

XzZy
XzZy
Niveau 10
05 mars 2014 à 12:44:33

Si c'est en javascript, j'ai trouvé un moyen assez simple de le faire:

function anagramme(mot1,mot2){
var tmp1 = mot1.split("").sort().join();
var tmp2 = mot2.split("").sort().join();
return tmp1 == tmp2;
}

Après si tu veux une logique plus générique, il faut chercher un peu plus. :-)

Et niveau perf, je ne crois pas sur que ce soit une bonne idée d'utiliser mon exemple.

Pseudo supprimé
Pseudo supprimé 05 mars 2014 à 12:48:05

Si tu tries tes 2 mots en mettant chacune de leur lettres dans l'ordre alphabétique tu devrais obtenir le même résultat.
Par exemple penis et pines, si tu tries ça fait einps pour les deux, c'est des anagrammes.

Ensuite si tu veux plus d'indications sur comment faire ça :
Tu peux pas trier directement (avec une fonction toute faite quoi) des chaines de caractères, mais tu peux trier facilement des arrays avec la fonction sort. Et tu peux aussi facilement transformer une chaine de caractères en array de caractères avec la fonction split, et inversement avec la fonction join.

Pseudo supprimé
Pseudo supprimé 05 mars 2014 à 12:48:48

Je réponds pas assez vite. :D

XzZy
XzZy
Niveau 10
05 mars 2014 à 12:56:22

Alayric :d) C'est bien comme ça il a l'exemple et l'explication ! :rire2:

ClaraOswin
ClaraOswin
Niveau 10
05 mars 2014 à 13:31:12

Bon je vais voir ça cette après midi et je vous tiens au courant, merci beaucoup pour vos réponses rapides :o)) !

ClaraOswin
ClaraOswin
Niveau 10
05 mars 2014 à 13:58:53

Bon voila, tout fonctionne très bien, et vos explications étaient super claires, j'ai bien compris ! :content:

Merci beaucoup ! :o))

Topic clos :p) !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment