Problèmes programmation
Florianedu56
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
AASPRONI Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
AASPRONI Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais créer une calculatrice qui additionne deux nombres décimaux et affiche le résultat binaire, c'est un truc à faire pour l'école car je suis en option ISN mais je débute
J'ai déjà commencé, enfin ... presque terminé, je bloque au niveau de l'affichage de la somme binaire.
J'ai oublié de précisé que c'est du language java's cool mais équivalent au java.
j'aimerais créer une calculatrice qui additionne deux nombres décimaux et affiche le résultat binaire, c'est un truc à faire pour l'école car je suis en option ISN mais je débute
J'ai déjà commencé, enfin ... presque terminé, je bloque au niveau de l'affichage de la somme binaire.
J'ai oublié de précisé que c'est du language java's cool mais équivalent au java.
Merci de m'éclairer.
int n1, nombre_de_depart1, n2, nombre_de_depart2, x, reste, compteur, nb , nombre_final;
// pour definir un tableau de 10 cases !
int tab1 []= new int [10];
int tab2 []= new int [10];
int tabsomme[] = new int [10];
int tabretenue[]= new int [10];
int tabtemp[]=new int [10];
void main(){
clear();
println("PROGRAMME PERMETTANT DE CALCULER LA SOMME EN BINAIRE !");
// initialisation
// lecture du 1er nombre n1 et vZrifier qu'il est bien positif !
while (n1<=0) {n1 = readInteger(" Merci de bien vouloir entrer un entier");}
nombre_de_depart1 = n1;
// lecture du 2nd nombre n2 et vZrifier qu'il est bien positif !
while (n2<=0) {n2 = readInteger(" Merci de bien vouloir entrer un entier");}
nombre_de_depart2 = n2;
// conversion du premier nombre en binaire
x=0;reste=0;compteur=0;
while (n1!=0)
{ reste=n1%2;
//if (reste==0) {reste=0;} else {reste = 1;}
if (reste==0) {reste=0;} else {reste=1;}
//x=x+reste*(int)pow(10,compteur);
x=x+reste*(int)pow(10,compteur);
tab1[compteur]=reste;
compteur=compteur+1;
n1=(int)(n1/2);
}
// conversion du second nombre en binaire
x=0;reste=0;compteur=0;
while (n2!=0)
{ reste=n2%2;
if (reste==0) {reste=0;} else {reste=1;}
x=x+reste*(int)pow(10,compteur);
tab2[compteur]=reste;
compteur=compteur+1;
n2=(int)(n2/2);
}
//remise dans l'ordre des tableaux
for (int i =0; i <10; i ++) {tabtemp[i] = tab1[9 - i];
print(tab1[9 - i]);}
println();
// euh, il y a 2 tableaux , non ?
for (int i =0; i <10; i ++) {tabtemp[i] = tab2[9 - i];
print(tab2[9 - i]);}
//affichage des deux tableaux l'un sous l'autre
println();
println();
print(nombre_de_depart1 + " = ");
for (int i=0;i<10;i++) {print(tab1[9-i]+ " ");} println(); println();
println();
print(nombre_de_depart2 + " = ");
for (int i=0;i<10;i++) {print(tab2[9-i]+ " ");} println(); println();
// calcul de la somme binaire
// somme bit ^ bit en partant de la fin
for (int i=0;i<10;i++)
{ tabsomme[9-i]= tab1[9-i] + tab2[9-i]+tabretenue[9-i];
if (tabsomme[9-i]==2) {tabsomme[9-i]=0;tabretenue[8-i]=1;}
// reste une condition ^ trouver... bah oui, faut rZflZchir un peu !
if (tabsomme[9-i]==3) {tabsomme[9-i]=1;tabretenue[8-i]=1;}
}
// affichage du nombre binaire
println();
println("Somme binaire ");
//oui, oui, faut l'afficher ici !
println();
// calcul du nombre obtenu
for (int i=0;i<10;i++) { nb=nb+tabsomme[9-i];} // Il manque des choses par ici !
println();
println();
println(" CONCLUSION ");
nombre_final=nombre_de_depart1+nombre_de_depart2;
println("la somme classique donne " + nombre_de_depart1 + " + " + nombre_de_depart2 + " = " + nombre_final);
println();
println("la somme binaire donne " + nombre_de_depart1 + " + " + nombre_de_depart2 + " = " + nb);
}
A voir également:
- Problèmes programmation
- Application de programmation - Guide
- Programmation envoi sms - Guide
- Programmation vb - Télécharger - Langages
- Programmation binaire - Guide
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
2 réponses
tu converti les binaires en decimal puis les fair a+b et convertir le resultat en binaires; ri de plus simple! je te donne les algo!
public static String DecimalToBinaire(int arg){
ArrayList<Integer> resultat= new ArrayList<Integer>();
try{
int leng;
String res="";
resultat.clear();
while(arg>1){
resultat.add(arg%2);
arg=(arg-(arg%2))/2;
}
resultat.add(arg);
leng=resultat.size();
for(int i=leng;i!=0;i--){
int a=resultat.get(i-1);
res=res+Integer.toString(a);
}
return res;
}
catch(NumberFormatException ex){
return "ce n'est pas un chiffre decimal";
}
}
public static int power(int a,int p){
int res=1;
for(int i=0;i<p;i++)res*=a;
return res;
}
ArrayList<Integer> resultat= new ArrayList<Integer>();
try{
int leng;
String res="";
resultat.clear();
while(arg>1){
resultat.add(arg%2);
arg=(arg-(arg%2))/2;
}
resultat.add(arg);
leng=resultat.size();
for(int i=leng;i!=0;i--){
int a=resultat.get(i-1);
res=res+Integer.toString(a);
}
return res;
}
catch(NumberFormatException ex){
return "ce n'est pas un chiffre decimal";
}
}
public static int power(int a,int p){
int res=1;
for(int i=0;i<p;i++)res*=a;
return res;
}