[Spoiler] Calculer la somme de nombres en base quelconque
2 participants
Page 1 sur 1
[Spoiler] Calculer la somme de nombres en base quelconque
Base.java
Tab.java
Pensez à inclure Entier.java et Lire.java.
Le dossier du complet et dans Commun.
- 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.
Sujets similaires
» [Spoiler] Projet Calculette
» [Spoiler] Dichotomie
» [Spoiler] Recopie phrase inversée
» [SPOILER] Procédure Remplir Tableau
» [Spoiler] Justifier une phrase JAVA
» [Spoiler] Dichotomie
» [Spoiler] Recopie phrase inversée
» [SPOILER] Procédure Remplir Tableau
» [Spoiler] Justifier une phrase JAVA
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|