Partage
  • Partager sur Facebook
  • Partager sur Twitter

traducteur Morse

    5 novembre 2014 à 13:17:55

    Bonjour a tous et a toutes,


    Je suis nouveau sur ce forum, je tiens donc tout d'abord a remercier toute l'équipe qui permets de mettre a disposition de tous ces cours très bien expliqués !

    Voici ma question, j’espère ne pas avoir fait de doublons :s

    J'ai comme projet de faire un programme en Java qui permet de traduire une chaine de caractère alphanumérique en morse, ou un code morse en caractère.

    Deux particularité dans mon cahier de charge:

    Tout d'abord, en vue de la ressemblance entre le code morse et le binaire il est demandé d'effectuer un tri par "Arbre" pour afficher les caractères correspondant.

    Ensuite une amélioration qui est facultative est de faire le programme avec une interface graphique.

    Mes questions sont:

    - Par quelle(s) méthodes puis-je effectuer ce tri par "arbre" ?

    - Quelqu'un pourrait me donner un tutoriel a jour pour débuter le code en interface graphique ?

    Je joins le début de mon programe en mode console pour que vous me dites si je suis sur la bonne voie:

    import java.util.Scanner;
    public class Main1 {
    
    	public static void main(String[] args) {
    		String tab[][]={{"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"},{".-","-..","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."} };
    		// tableau contenant les lettres et le code classé par ordre alphabéthique
    		Scanner br = new Scanner(System.in);
    		System.out.println("Dans quel sens ? Alpha=>Morse=1,Morse=>Alpha=2");
    		int choix = br.nextInt();
    		if (choix==1){
    			System.out.println("Veuillez saisir votre chaine de caractere a traduire en morse");
    			String chaine=br.nextLine();
    		}
    		else{
    			System.out.println("Veuillez saisir votre code morse a traduire en caractere");
    			String morse=br.nextLine();
    		}
    		
    	}
    
    }
    

    J’espère avoir été clair dans mes questions.

    Cordialement,

    Jjbond

    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2014 à 17:54:38

      Bonsoir,

      Vous n'avez pas construit un arbre dans le cas présent c'est un tableau.

      Lien vers l'arbre binaire :

      http://fr.wikipedia.org/wiki/Arbre_binaire_de_recherche

      http://imss-www.upmf-grenoble.fr/prevert/Prog/Java/CoursJava/arbresBinaires.html

      Le dernier lien, montre comment créer l'arbre binaire.

      Ensuite des informations sur le Morse (alphabet).

      http://morsecode.scphillips.com/morse2.html

      http://www.apprendre-en-ligne.net/crypto/morse/

      http://fr.wikipedia.org/wiki/Morse_%28alphabet%29

      Sur le dernier lien on a une représentation de l'arbre (Arbre mnémotechnique de décodage).

      Vous devez le faire en arbre binaire en utilisant les informations sur l'arbre binaires.

      Mettre à gauche, de l'arbre les points et à droite, les traits.

      Exemple : racine → élément racine, à gauche, l'élément E et à droite, l'élément T.

      Dans l'élément E on a, à gauche l'élément I et à droite, l'élément A.

      etc.

      E => .

      T => -

      I => ..

      A => .-

      Je ne sais pas si c'est très clair, mais le code est pratiquement tout fait ^^.

      PS :Interface graphique : http://openclassrooms.com/courses/apprenez-a-programmer-en-java/notre-premiere-fenetre.

      Bonne continuation.

      -
      Edité par pctronique 5 novembre 2014 à 17:56:26

      • Partager sur Facebook
      • Partager sur Twitter
        11 novembre 2014 à 10:35:47

        Bonjour a vous ,

        Merci tout d'abord pour votre réponse les liens sur les arbres m'ont énormément aidé  a comprendre la logique du programme.

        Pendant ce temps mon code a bien évolué. L'interface graphique est prête il ne reste plus qu'a ajouter ce fameux arbre au programme, je vais tenter de le faire aujourd'hui.

        EDIT:

        Je n'ai malheureusement pas compris l'architecture du code pour l'arbre..

        Combien de classes dois-je créer ?

        Comment s'articule les bouts de code tels que l'affichage, la hauteur,le nombre d’éléments etc ..

        Ps: Je suis débutant en java, je m'excuse d'avance si mes questions peuvent paraitre idiotes.

        -
        Edité par jjbond 11 novembre 2014 à 11:15:33

        • Partager sur Facebook
        • Partager sur Twitter
          11 novembre 2014 à 15:57:05

          Bonjour,

          On vous demande de créer un arbre et le parcourir. Mais il n'est pas dit de créer tous l'arbre binaire, donc vous pouvez aussi bien construire seulement les branches et le parcourir.

          Voici un exemple de ce que vous pouvez faire :

          Créer l'arbre de cette façon :

          Jusqu'à avoir les deux branches nulles :

          Un conseil pour construire l'arbre : partez des branches nulles pour arriver au noeud de départ.

          Vous avez seulement besoin de 2 classes :

          Dans la classe Main :

          public static void main(String[] args) {
              CodeMorse codeMorse = new CodeMorse();
              String texte = "code morse";
              String morse = codeMorse.texteToMorse(texte);
              System.out.println(morse);
              System.out.println(codeMorse.morseToTexte(morse));
          }
          Qui va afficher :
          -.-. --- -.. . ······· -- --- .-. ... .
          CODE MORSE

          Petite aide :
          Pour le texte à convertir en morse :
          Lire l'arbre jusqu'à trouver la branche du caractère, ensuite revenir en arrière pour construire le morse :
          Exemple pour 'N' : Le code a trouvé 'N' dans l'arbre, on vient en arrière, on est à gauche du noeud T, dont on met un '.'. On continue à venir en arrière et 'T' se trouve à droite du noeud de la racine, donc on met '-' et on obtient ".-". On inverse le résultat et on a pour le code morse "-.", pour la lettre 'N'. 'N' = "-.".
          Pour le morse à convertir en texte :
          Exemple pour ".-" : Comme on a un '.' on part sur le noeud de gauche de la racine et on arrive à 'E'. On a '-', donc on va à droite du noeud de E et on a 'A'.
          Pour le morse ".-" on a le caractère 'A'. ".-" = 'A'.

          Je vous laisse faire.

          Bonne continuation.

          -
          Edité par pctronique 11 novembre 2014 à 16:04:45

          • Partager sur Facebook
          • Partager sur Twitter
            11 novembre 2014 à 16:56:35

            Merci pour votre réponse, j'avance progressivement mais surement ! ^^

            Pour ma classe Nœud j'ai :

            class Noeud <E> implements Cloneable{
            	    E element;
            	    Noeud<E> gauche, droit;
            	  
            	   public Noeud (){ 
            	      element = null;
            	      gauche = null;
            	      droit = null;
            	   }
            
            	   public Noeud ( Object valeur, Noeud<E> g,Noeud<E> droit){
            	      element = (E)valeur;
            	      gauche = g;
            	      this.droit=droit;
            	   }
            	   
            	   public Object clone() throws CloneNotSupportedException{
            	      Noeud<E> g = null;
            	      if( gauche != null ) g = (Noeud<E>)gauche.clone();
            	      Noeud<E> d = null;
            	      if( droit != null ) d = (Noeud<E>)droit.clone();
            	      return new Noeud<E>(element, g, d);
            	   }
            	 };

            Est ce correct ?

            Cordialement,

            jjbond.

            • Partager sur Facebook
            • Partager sur Twitter
              11 novembre 2014 à 19:28:33

              Le mieux serait de faire :

              public class Noeud<E> implements Cloneable {
                  
                  public E element;
                  public Noeud<E> gauche, droite;
                  
                  public Noeud() { 
                      element = null;
                      gauche = null;
                      droite = null;
                  }
                  
                  public Noeud(E valeur, Noeud<E> g, Noeud<E> d) {
                      element = valeur;
                      gauche = g;
                      droite = d;
                  }
                  
                  @Override
                  public Object clone() throws CloneNotSupportedException {
                      // copie en profondeur d’un noeud
                      Noeud<E> g = null;
                      if( gauche != null ) g = (Noeud<E>)gauche.clone();
                      Noeud<E> d = null;
                      if( droite != null ) d = (Noeud<E>)droite.clone();
                      return new Noeud<E>(element, g, d);
                  }
              
              }

              Sinon oui c'est bon et la suite ?

              Là c'est très simple, c'est sur le site pour construire l'arbre binaire.

              • Partager sur Facebook
              • Partager sur Twitter
                12 novembre 2014 à 11:21:39

                Si j'ai bien compris voici pour l'autre classe,

                public class ArbreBinaire<E> {
                     Noeud<E> racine;
                    private void infixe(Noeud<E> r){
                    	if (r!=null) {
                    	      infixe(r.gauche); 
                    	      System.out.print(r.element.toString()+" ");
                    	      infixe(r.droit);
                    	   }
                    }
                    private void indente( Noeud<E> r, int n){
                    	   if (r!=null){ 
                    		      indente(r.gauche, n+3);
                    		      for( int i = 0; i< n; ++i) System.out.print(" ");
                    		      System.out.print(r.element);
                    		      indente(r.droit, n+3);
                    		   }
                    }
                    public ArbreBinaire(){}
                    public int nombreElement(){
                    	return nombreElement(racine);
                    }
                    public int nombreElement(Noeud<E> r){
                        if (r==null)return 0;
                        else return nombreElement(r.gauche) + 1 + nombreElement(r.droit);
                    }
                    public int hauteur(){
                    	return hauteur(racine);
                    }
                    public int hauteur(Noeud<E> r){
                    	   if (r==null) return 0;
                    	   else return Math.max( hauteur(r.gauche), hauteur(r.droit)) + 1;
                    }
                    public int nombreFeuilles(){
                    	return nombreFeuilles(racine);
                    }
                    public int nombreFeuilles(Noeud<E> r){
                    	if (r==null)return 0;
                        else 
                          if(r.gauche==null && r.droit==null) return 1;
                          else return nombreFeuilles(r.gauche) + nombreFeuilles(r.droit);
                    }
                    public void infixe (){
                    	infixe (racine);
                    }
                    public void indente(){
                    	indente (racine, 0);
                    }
                    public String parenthesee(){
                    	return parenthesee(racine);
                    }
                    public String parenthesee(Noeud<E> r){
                    	if (r==null) return "";
                    	   else return r.element.toString()+"("+ parenthesee(r.gauche)+", "+parenthesee(r.droit)+")";
                    }
                    public Object clone()
                    	throws CloneNotSupportedException{
                    		   ArbreBinaireOrdonne abo = new ArbreBinaireOrdonne ();
                    		   if(racine != null) abo.racine = (Noeud<E>) (racine.clone());
                    		   return abo;
                    }
                
                }
                


                -
                Edité par jjbond 12 novembre 2014 à 11:25:35

                • Partager sur Facebook
                • Partager sur Twitter
                  12 novembre 2014 à 13:58:13

                  Bonjour,

                  Je n'avais pas l'idée de construire l'arbre binaire en entier, même si c'est le mieux au niveau du programme. Ca vous évitera de revenir en arrière au niveau de l'arbre, mais par contre faut revoir le code alors. Il faut construire un arbre spécifique au programme.

                  Car l'arbre actuel va faire :

                  On va déjà voir la table ASCII :

                  Décimal => char
                  32 => espace
                  65 => A
                  66 => B
                  67 => C
                  68 => D
                  69 => E
                  70 => F
                  71 => G
                  72 => H
                  73 => I
                  74 => J
                  75 => K
                  76 => L
                  77 => M
                  78 => N
                  79 => O
                  80 => P
                  81 => Q
                  82 => R
                  83 => S
                  84 => T
                  85 => U
                  86 => V
                  87 => W
                  88 => X
                  89 => Y
                  90 => Z

                  A chaque caractère corresponds un nombre qui correspond à la table ASCII.

                  Et dans la méthode « ajout » dans la classe « ArbreBinaireOrdonne » on a :

                  private Noeud ajout(Noeud<E> r, E o){
                      if(r==null) return new Noeud<E> (o, null, null);
                      else if (r.element.compareTo(o)<0) r.droite = ajout(r.droite, o);
                      else if (r.element.compareTo(o)>0) r.gauche = ajout(r.gauche, o);
                      return r;
                  }
                  Ce qui nous donne :
                  => ' ' = 32 et 'E' = 69, 'E' > ' ', donc il est placé à gauche.
                  => ' ' = 32 et 'T' = 84, 'T' > ' ', donc on part à gauche aussi et ensuite on a 'E'.
                  => 'E' = 69 et 'T' = 84, 'T' > 'E', donc il est placé à gauche de 'E', mais nous on veut à droite de ' '.
                  ** => Donc l'arbre actuel ne va pas.
                  Dans ce cas, on doit mettre en place un numéro d'emplacement pour chaque élément.
                  Donc, il faut ajouter dans la classe Noeud :
                  public int placement;

                  Ne plus comparer au niveau de l'élément, mais au niveau de son emplacement. Sa ne change pas grand-chose si vous avez compris le fonctionnement. Par contre, bien étudier l'arbre pour bien mettre le bon numéro d'emplacement. Ecrire l'arbre à la main et placer les emplacements, comme ceci :

                  'O' se trouve à l'emplacement 0.

                  Au-dessus de 'M' on aura l'emplacement 5 pour 'T'.

                  Pour information : c'est mieux que mon idée, mais je voulais faire simple :p.

                  public class ArbreBinaire<E> {
                      public Noeud<E> racine;
                      
                      private void infixe(Noeud<E> r){
                          if (r!=null) {
                              infixe(r.gauche);
                              System.out.print(r.element.toString()+" ");
                              infixe(r.droite);
                          }
                      }
                      
                      private void indente(Noeud<E> r, int n){
                          if (r!=null){
                              indente(r.gauche, n+3);
                              for( int i = 0; i< n; ++i) System.out.print(" ");
                              System.out.print(r.element);
                              indente(r.droite, n+3);
                          }
                      }
                      
                      public ArbreBinaire(){}
                      
                      public int nombreElement(){
                          return nombreElement(racine);
                      }
                      
                      public int nombreElement(Noeud<E> r){
                          if (r==null)return 0;
                          else return nombreElement(r.gauche) + 1 + nombreElement(r.droite);
                      }
                      
                      public int hauteur(){
                          return hauteur(racine);
                      }
                      
                      public int hauteur(Noeud<E> r){
                          if (r==null) return 0;
                          else return Math.max( hauteur(r.gauche), hauteur(r.droite)) + 1;
                      }
                      
                      public int nombreFeuilles(){
                          return nombreFeuilles(racine);
                      }
                      
                      public int nombreFeuilles(Noeud<E> r){
                          if (r==null)return 0;
                          else
                              if(r.gauche==null && r.droite==null) return 1;
                              else return nombreFeuilles(r.gauche) + nombreFeuilles(r.droite);
                      }
                      
                      public void infixe (){
                          infixe (racine);
                      }
                      
                      public void indente(){
                          indente (racine, 0);
                      }
                      
                      public String parenthesee(){
                          return parenthesee(racine);
                      }
                      
                      public String parenthesee(Noeud<E> r){
                          if (r==null) return "";
                          else return r.element.toString()+"("+ parenthesee(r.gauche)+", "+parenthesee(r.droite)+")";
                      }
                      
                      @Override
                      public Object clone()
                          throws CloneNotSupportedException{
                              ArbreBinaireOrdonne abo = new ArbreBinaireOrdonne();
                              if(racine != null) abo.racine = (Noeud<E>) (racine.clone());
                              return abo;
                      }
                   
                  }

                  Bonne continuation.

                  -
                  Edité par pctronique 12 novembre 2014 à 14:08:50

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 novembre 2014 à 13:35:29

                    Bonjour,

                    Encore une fois merci pour votre réponse.


                    J'ai bien cerné la particularité de cet arbre.

                    Donc si j'ai bien compris:

                    Il faut rajouter

                    Public int placement;

                    Dans la classe Noeud et l'utiliser dans la méthode " ajout " dans la classe " ArbreBinaireOrdonne "

                    Donc on remplace ceci:

                    else if (r.element.compareTo(o)<0) r.droite = ajout(r.droite, o);
                        else if (r.element.compareTo(o)>0) r.gauche = ajout(r.gauche, o);


                    Par:

                    private Noeud<E> ajout ( Noeud<E> r, E o){
                    		   if(r==null) 
                    		       return new Noeud<E> (o, null, null);
                    		   else 
                    		       if (r.placement.compareTo(o)<0) r.droit = ajout(r.droit, o); 
                    		       else if (r.placement.compareTo(o)>0) r.gauche = ajout(r.gauche, o);
                    		   return r;
                    	   }



                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 novembre 2014 à 19:23:14

                      Bonsoir,

                      Là, vous comparez un nombre avec une variable qui peut être un caractère ou autre, sa ne marchera pas.

                      Il vaut mieux faire :

                      if (r.placement < placement) r.gauche = ajout(r.gauche, o, placement);
                      else if (r.placement > placement) r.droite = ajout(r.droite, o, placement); 

                      Par contre pour l'égalité, bien le faire avec l'élément :

                      if (r.element.compareTo(o)==0) return supp(r);

                      La classe Noeud :

                      public class Noeud<E> implements Cloneable {
                          
                          public E element;
                          public Noeud<E> gauche, droite;
                          public int placement;
                          
                          public Noeud() { 
                              element = null;
                              gauche = null;
                              droite = null;
                          }
                          
                          public Noeud(E valeur, Noeud<E> g, Noeud<E> d, int placement) {
                              element = valeur;
                              gauche = g;
                              droite = d;
                              this.placement = placement;
                          }
                          
                          @Override
                          public Object clone() throws CloneNotSupportedException {
                              // copie en profondeur d’un noeud
                              Noeud<E> g = null;
                              if( gauche != null ) g = (Noeud<E>)gauche.clone();
                              Noeud<E> d = null;
                              if( droite != null ) d = (Noeud<E>)droite.clone();
                              return new Noeud<E>(element, g, d, 12);
                          }
                      
                      }
                      

                      Créer la classe "ArbreBinaireOrdonne" pour l'arbre de morse :

                      public void ajout(E o, int placement){}
                       
                      private Noeud ajout(Noeud<E> r, E o, int placement){}
                          
                      public void suppression(E o, int placement){}
                       
                      private Noeud suppression(Noeud<E> r, E o, int placement){}
                      
                      private Noeud<E> supp (Noeud<E> r){}
                      
                      public Noeud<E> chercher(Noeud<E> r, E o, int placement){}
                          
                      @Override
                      public Object clone() throws CloneNotSupportedException{}

                      Créer l'arbre à la main, ensuite relier le tous en formant des dents de scies et le lire de droite à gauche pour mettre les numéros d'emplacement.
                      Pour information : J'ai fait une erreur sur mon schéma, car 'G' est placé en 3 et 'Q' en 2 (sinon on obtient plus la dent de scie).

                      PS : Je vous donne l'arbre, seulement le dessin :p :

                      Bonne continuation.

                      -
                      Edité par pctronique 13 novembre 2014 à 19:40:34

                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 novembre 2014 à 14:26:12

                        Bonjour,

                        Veuillez m'excuser pour cette réponse tardive petits problèmes avec internet..

                        je n'ai pas trop saisi ce que je dois faire avec la classe "ArbreBinaireOrdonee"

                        J'ai tout de meme tenté de la faire en esperent qu'elle soit juste.

                        package tree;
                        
                        public class ArbreBinaireOrdonne <E  extends Comparable<E>> extends ArbreBinaire<E> {
                        	public void ajout(E o, int placement){
                        		racine = ajout(racine, o);
                        	}
                        	  
                        	private Noeud ajout(Noeud<E> r, E o, int placement){
                        		if (r.placement < placement) r.gauche = ajout(r.gauche, o, placement);
                        		else if (r.placement > placement) r.droit = ajout(r.droit, o, placement);
                        		if (r.element.compareTo(o)==0) return supp(r);
                        	}
                        	     
                        	public void suppression(E o, int placement){
                        		racine = suppression(racine, o);
                        	}
                        	  
                        	private Noeud suppression(Noeud<E> r, E o, int placement){
                        		if (r==null) return r;
                        		   else{
                        		      if (r.element.compareTo(o)==0) return supp(r);
                        		      else if(r.element.compareTo(o)>0) r.gauche = suppression(r.gauche, a); 
                        		           else r.droit = suppression(r.droit, a);
                        		      return r;
                        		   }
                        	}
                        	 
                        	private Noeud<E> supp (Noeud<E> r){
                        		 if(r.gauche==null) return r = r.droit; 
                        		   else
                        		      if(r.droit==null) return r = r.gauche;
                        		      else{ 
                        		         Noeud<E> r1 = r.gauche;
                        		         Noeud<E> pere = r;
                        		         while(r1.droit!=null) {
                        		             pere = r1;
                        		             r1 = r1.droit;
                        		         }
                        		         r.element = r1.element;
                        		         if(pere == r) pere.gauche = r1.gauche;
                        		         else pere.droit = r1.gauche;
                        		         return r;
                        		      }
                        	}
                        	 
                        	public Noeud<E> chercher(Noeud<E> r, E o, int placement){
                        		if (r==null) return null;
                        		   else if (r.element.compareTo(o)==0) return r;
                        		        else
                        			  if(r.element.compareTo(o)>0)  return chercher(r.gauche, E);
                        			  else return chercher(r.droit, E);
                        	}
                        	     
                        	@Override
                        	public Object clone() throws CloneNotSupportedException{
                        		ArbreBinaireOrdonne abo = new ArbreBinaireOrdonne<E> ();
                        		   if(racine != null) abo.racine = (Noeud<E>) (racine.clone());
                        		   return abo;
                        	}
                        }
                        


                        Cordialement,

                        JJbond.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 novembre 2014 à 8:34:36

                          Bonjour,
                          Ne recopiez pas du code sans comprendre, car là ce n'est pas du tous bon, il y a plusieurs erreurs.

                          public class ArbinaireOrd<E extends Comparable<E>> extends ArbreBinaire<E> {
                              public void ajout(E o, int placement){
                                  racine = ajout(racine, o); // Erreur au niveau de la methode.
                                  // Utiliser la methode qui suit.
                              }
                                 
                              private Noeud ajout(Noeud<E> r, E o, int placement){ // <== cette methode.
                                  // Le contenu de cette methode n'est pas bon.
                                  if (r.placement < placement) r.gauche = ajout(r.gauche, o, placement);
                                  else if (r.placement > placement) r.droite = ajout(r.droite, o, placement);
                                  if (r.element.compareTo(o)==0) return supp(r);
                                  // Manque un retour.
                              }
                          public void suppression(E o, int placement){
                                  racine = suppression(racine, o); // Erreur au niveau de la methode.
                                  // Utiliser la methode qui suit.
                              }
                                 
                              // Vous n'utilisez pas la variable placement dans la methode ?
                              private Noeud suppression(Noeud<E> r, E o, int placement){
                                  if (r==null) return r;
                                     else{
                                        if (r.element.compareTo(o)==0) return supp(r);
                                        // La variable a n'existe pas. 
                                        else if(r.element.compareTo(o)>0) r.gauche = suppression(r.gauche, a);
                                             else r.droite = suppression(r.droite, a);
                                        return r;
                                     }
                              }
                          // Vous n'utilisez pas la variable placement dans la methode ?
                              public Noeud<E> chercher(Noeud<E> r, E o, int placement){
                                  if (r==null) return null;
                                  else if (r.element.compareTo(o)==0) return r;
                                  // La variable E n'existe pas.
                                  else if(r.element.compareTo(o)>0)  return chercher(r.gauche, E);
                                  else return chercher(r.droite, E);
                              }

                          Réparer les erreurs. Ecriver sur un papier ce que la méthode va faire, si vous n'arrivez pas à voir.

                          private Noeud suppression(Noeud<E> r, E o, int placement){
                              // Si c'est nul, il retourne le dernier noeud.
                              if (r==null) return r;
                              else{
                                  // Sinon il compare l'element du noeud avec l'element a supprimer.
                                  if (r.element.compareTo(o)==0) return supp(r);
                                  // Si les deux elements ne sont pas equivalent, il compare les deux elements pour savoir si c'est superieur a zero.
                                  else if(r.element.compareTo(o)>0) r.gauche = suppression(r.gauche, a);
                                  else r.droite = suppression(r.droite, a);
                                  return r;
                              }
                          }

                          Le comparateur (la méthode compareTo) :
                          L'ascii :

                          Décimal => char
                          32 => espace
                          69 => E
                          84 => T

                          En java :

                          System.out.println("E".compareTo(" "));
                          System.out.println("E".compareTo("E"));
                          System.out.println(" ".compareTo("E"));

                          Ce qui donne :

                          37
                          0
                          -37

                          La comparaison entre "E" et " " :
                          69-32 = 37
                          69-69 = 0
                          32-69 = -37

                          La comparaison entre "T" et " " :
                          84-32 = 52
                          84-84 = 0
                          32-84 = -52

                          La comparaison entre "T" et "E" :
                          84-69 = 15
                          84-84 = 0
                          69-84 = -15

                          La comparaison entre "E" et "T" :
                          69-84 = -15
                          69-69 = 0
                          84-69 = 15

                          Bonne continuation.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 décembre 2014 à 20:47:11

                            Bonsoir, après maintes réflexion je réalise que je n'ai pas du tout le niveau requis pour faire ce type de programme..

                            J'abandonne donc ce projet, en effet la date  approche bientôt (21 décembre) et je ne vais pas vous demander de coder l'arbre pour moi.

                            Je rendrais donc mon programme sans la contrainte de l'arbre pour information j'utilise des hashmap et ça marche vraiment bien j'ai eu le temps de faire une interface graphique c'est déjà une sur les deux contraintes de respecté.

                            Je tiens tout de même a vous remercier pour avoir tenté de m'aider merci beaucoup pour votre patience !

                            jjbond.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            traducteur Morse

                            × 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