[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.

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

GrlSidious (Vince)
Admin

Messages : 58
Karma Karma : 53
Date d'inscription Date d'inscription : 23/05/2016
Age Age : 27
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

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é Aujourd'hui à 11:44


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