1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| int n1, nombre_de_depart1, n2, nombre_de_depart2, x, reste, compteur, nb , nombre_final;
// pour définir 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 vérifier 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 vérifier 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 rŽflŽchir 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);
} |
Partager