Voir le résultat Retour à la page du projet
Afficher/Masquer les commentaires
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<title>Calculette binaire</title>
<style>
L'interface utilisateur est incluse dans un élément div
, dont l'id
est fond
,
nous définissons ici une règle CSS pour cette div
:
padding:10px
: le contenu est à 10 pixels du bord,
border:1px solid blue
: la bordure est bleue en trait plein de 1 pixel d'épaisseur,
background-color:lightblue
: la couleur de fond est en bleu pâle.
#fond{
width:233px;
padding:10px;
border:1px solid blue;
background-color:lightblue;
}
#affich{
resize:none;
}
</style>
</head>
<body>
Interface utilisateur
L'ensemble de l'interface figure dans un élément div
et comporte :
un zone d'affichage,
quatre boutons 0 ; 1 ; + ; = associés aux quatre fonctions un(), zero(), add() et resol().
<div id="fond">
<form>
<textarea id="affich" rows="10" cols="30" readonly="readonly"></textarea>
</form>
<p><input type="button" value="1" onClick="un()"/><input type="button" value="0" onClick="zero()"/>
<input type="button" value="+" onClick="add()"/><input type="button" value="=" onClick="resol()"/></p><br>
©mathartung
</div>
Code JavaScript du programme
<script>
On commence par définir les variables.
En définissant des variables avec la commande document.getElementById
, on peut interagir avec notre zone de texte textarea
, et donc notre interface.
var affichage=document.getElementById("affich");
var nbin=0;
var listbin=new Array();
On définit les fonctions (un() ; zero() ; add()
) pour l'affichage et la création des nombres binaires qui seront exécutées avec les boutons.
function un() {
affichage.value=affichage.value+("1");
nbin=1+10*nbin;
}
function zero() {
affichage.value=affichage.value+("0");
nbin=10*nbin;
}
function add() {
affichage.value=affichage.value+("+\n");
listbin.push(nbin);
nbin=0;
}
On définit les fonctions (resol() ; sommebin(m,n)
) qui vont calculer la somme et afficher la somme..
function resol() {
affichage.value=affichage.value+("=\n");
listbin.push(nbin);
var rep=0;
for (l=0;l<listbin.length;l++){
rep=sommebin(rep,listbin[l]);
}
affichage.value=affichage.value+(rep+"\n");
nbin=0;
listbin=[];
}
function sommebin(m,n){
var r=0;
var s=0;
var p=0;
while (n!=0 || m!=0 || r!=0){
s=s+(Math.pow(10, p)*(((n%10)+(m%10)+r)%2));
r=Math.floor(((n%10)+(m%10)+r)/2);
n=(n-(n%10))/10;
m=(m-(m%10))/10;
p=p+1;
}
return s;
}
</script>
</body>
</html>