Bonjour, étant élève en ISN (option informatique et science du numérique) au lycée, mon prof m'a donné un exercice à compléter sur java's cool (c'est équivalent à du java), j'ai pas mal avancé mais je suis bloqué au niveau de l'affichage du nombre binaire, je pense que ce qu'il y a avant est correct.
J'aimerais qu'on m'éclaire car je suis un peu perdu. Je vous transmet l'exercice avec les commentaires du prof.
Merci d'avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);

}