Code source du projet de calculette binaire en JavaScript

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 :

	#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 :

<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()"/>&nbsp;&nbsp;
	<input type="button" value="+" onClick="add()"/><input type="button" value="=" onClick="resol()"/></p><br>
	&copy;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>