[Spoiler] Calculer la somme de nombres en base quelconque

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Spoiler] Calculer la somme de nombres en base quelconque

Message par Samy.C le Jeu 9 Juin - 13:28

Base.java
Code:
/*" auteur :" crossette
" date :" 8 juin 2016
" nom fichier :" Base.java*/
public class Base
{
   public static void main(String arg[])
   {
      char [] chiffres;
      int baseb;
      int somme;
            
      System.out.println("Chaine de chiffres : ");
      chiffres=Tab.saisirTab();
      System.out.println("Convertir en base : ");
      baseb=Lire.i();
      somme=calculSomme(chiffres,baseb);
      System.out.println("Somme en base "+baseb+" : ");
      System.out.println(somme);
   }

   private static int calculSomme(char[] chiffres, int baseb)
   {
      Entier i_t = new Entier() ;
      i_t.setVal(0);
      int nombre;
      int resultat=0;
      
      
      do
      {
         while(chiffres[i_t.getVal()]==' ')
         {
            i_t.incr();
         }
      
         if (chiffres[i_t.getVal()]!='.')
         {
            nombre=decoder(chiffres,i_t,baseb);
            resultat=resultat+nombre;
         }
      }while(chiffres[i_t.getVal()]!='.');
      
      return resultat;
   }

   private static int decoder(char[] chiffres,Entier i, int baseb)
   {
      int valeur=0;
      
      do
      {
         valeur=valeur*baseb+convertir(chiffres[i.getVal()]);
         i.incr();
      }while(chiffres[i.getVal()]!=' ');
      return valeur;
   }

   private static int convertir(char car)
   {
   int val_chiffre=0;
   switch (car)
   {
      case '0' : val_chiffre = 0;
      break;
      case '1' : val_chiffre = 1;
      break;
      case '2' : val_chiffre = 2;
      break;
      case '3' : val_chiffre = 3;
      break;
      case '4' : val_chiffre = 4;
      break;
      case '5' : val_chiffre = 5;
      break;
      case '6' : val_chiffre = 6;
      break;
      case '7' : val_chiffre = 7;
      break;
      case '8' : val_chiffre = 8;
      break;
      case '9' : val_chiffre = 9;
      break;
      case 'A' : val_chiffre = 10;
      break;
      case 'a' : val_chiffre = 10;
      break;
      case 'B' : val_chiffre = 11;
      break;
      case 'b' : val_chiffre = 11;
      break;
      case 'C' : val_chiffre = 12;
      break;
      case 'c' : val_chiffre = 12;
      break;
      case 'D' : val_chiffre = 13;
      break;
      case 'd' : val_chiffre = 13;
      break;
      case 'E' : val_chiffre = 14;
      break;
      case 'e' : val_chiffre = 14;
      break;
      default : val_chiffre = 15;
   }   
   
   return val_chiffre;   
   }
}



Tab.java
Code:
/*" auteur :" crossette
" date :" 26 mai 2016
" nom fichier :" Tab.java*/
public class Tab
{
   final static int LONGEURMAX = 80; // Longeur max d'une chaine
   final static char FINAL = '.'; // Caractère terminatoire

   public static void main(String arg[])
   {
   char[] phrase;
      
   phrase=saisirTab();
   
   affichertab(phrase);
      
   }

   public static char[] saisirTab()
   {
      char[] phrase;
      int i;
      int k;
      String phraseBase;
      phraseBase = Lire.Chaine();
      phrase = new char[LONGEURMAX];
      i=0;
      
      if (phraseBase.length()<1) //Si il n'y a aucun caractère
      {
      phraseBase=".";
      }
      
      if (phraseBase.length() > LONGEURMAX) // Si la chaine est trop longue
      {
         phraseBase = phraseBase.substring(0, LONGEURMAX-1);
      }
      
      do // Mettre le contenu du string dans le tableau
      {
      phrase[i]=phraseBase.charAt(i);
      i++;
      }while(i < phraseBase.length());
      i=0;
      
      k = phraseBase.length();
      
      if (phrase[k-1]!=FINAL) // Ajouter le caractères terminatoire si il n'est pas présent
      {
         phrase[k]=FINAL;
      }

      Lire.Filtre(false);
      return phrase;
   }

   public static void affichertab(char[] phrase)
   {
      int i;
      i=0;
      
      System.out.println("Il y a dans le tableau :");
      do
      {
      System.out.print(phrase[i]);
      i++;
      }while ((i < phrase.length) && (phrase[i-1]!=FINAL)); // Afficher le contenue du tableau phrase jusqu'au caractère terminatoire
   }
   
}

Pensez à inclure Entier.java et Lire.java.

Le dossier du complet et dans Commun.
avatar
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Re: [Spoiler] Calculer la somme de nombres en base quelconque

Message par GrlSidious (Vince) le Jeu 9 Juin - 13:47

T'es un amour... merci <3
avatar
GrlSidious (Vince)
Admin

Messages : 58
Karma Karma : 53
Date d'inscription Date d'inscription : 23/05/2016
Age Age : 28
Localisation Localisation : Grenoble
Humeur Humeur : Fiora top 4 ever

Voir le profil de l'utilisateur https://fr.wiktionary.org/wiki/connard

Revenir en haut Aller en bas

Re: [Spoiler] Calculer la somme de nombres en base quelconque

Message par Samy.C le Jeu 9 Juin - 13:53

geek
avatar
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 21
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

Voir le profil de l'utilisateur http://youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Re: [Spoiler] Calculer la somme de nombres en base quelconque

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum