Les exemples ci-dessous sont écrits dans le langage JavaScript francisé de cet excellent outil, sur lequel on peut les tester. Ils servent surtout à montrer l’importance des commentaires dans un programme...
Quelles sont les propriétés des trois nombres ?
Donc, que fait ce programme ? Il calcule des nombres mais lesquels ?
var triplets=new tableau("a","b","c");
for (p=1;p<=20;p++){
for (q=1;q<p;q++){
a=p*p-q*q;
b=2*p*q;
c=p*p+q*q
triplets.ajouter(a,b,c);
}
}
Que représente le deuxième nombre ?
Ce programme remplit un tableau ; la première colonne représente des sommes de monnaie inférieures à 1 €. Mais que représentent les nombres entiers de la deuxième colonne ?
var boulanger=new tableau("Sommes","Nombres");
var somme=new Array();
somme.ElementN=100;
somme[0]=1;
for(n=1;n<100;n++){
if(n<=1){somme[n]=somme[n-1];}
else{
if(n<=2){somme[n]=somme[n-1]+somme[n-2];}
else{
if(n<=4){somme[n]=somme[n-1]+somme[n-2]-somme[n-3];}
else{
if(n<=5){somme[n]=somme[n-1]+somme[n-2]-somme[n-3]+somme[n-5];}
else{
if(n<=6){somme[n]=somme[n-1]+somme[n-2]-somme[n-3]+somme[n-5]-somme[n-6];}
else{
if(n<=7){somme[n]=somme[n-1]+somme[n-2]-somme[n-3]+somme[n-5]-somme[n-6]-somme[n-7];}
else{
somme[n]=somme[n-1]+somme[n-2]-somme[n-3]+somme[n-5]-somme[n-6]-somme[n-7]+somme[n-8];
}
}
}
}
}
}
boulanger.ajouter(n/100,somme[n]);
}
Quel est ce nombre ?
Ce programme calcule 8400 décimales d’un nombre mystérieux. Quel est ce nombre ?
var retenue=0;
tableau=new Array(8401);
for (i=0;i<=8400;i++) {tableau[i]=2000;}
for (j=600;j>0;j--) {
resultat=0;
for (i=j*14;i>0;i--) {
tmp = (resultat*i + tableau[i]*10000);
resultat=tmp/(2*i-1);
tableau[i]=tmp%(2*i-1);
}
afficher(retenue+resultat/10000);
retenue=resultat%10000;
}
Mais pourquoi ?
La question n’est pas tant « qu’est-ce qu’il calcule » puisque le résultat est plutôt nul mais « pourquoi trouve-t-on ceci » :
a=demander("Entrer un premier nombre :");
b=demander("Entrer un deuxième nombre :");
var som=a+b;
var diff=a-b;
var prod=som*diff;
var asquare=a*a;
var bsquare=b*b;
var diffcar=asquare-bsquare;
afficher("On trouve ",prod-diffcar);
Quel est cet outil ?
Ce programme calcule un très vieil outil mais lequel ?
var brahmagupta=new tableau("Je calcule","mais quoi?");
var s=225/3438;
var c=2*Math.sqrt(1-s*s);
var a=0;
var b=s;
brahmagupta.ajouter(0+"°",a.toFixed(4));
brahmagupta.ajouter(3.75+"°",b.toFixed(4));
for(i=7.5;i<=90;i+=3.75){
var t=c*b-a;
brahmagupta.ajouter(i+"°",t.toFixed(4));
a=b;
b=t;
}
Mais qu’est-ce qu’il fait ?
Ce programme calcule deux nombres entiers ; que représentent-ils ?
var y=demander("En quelle année ?");
var c=Math.floor(y/100);
var n=y%19;
var k=Math.floor((c-17)/25);
var i =c-Math.floor(c/4)-Math.floor((c-k)/3)+19*n+15;
i=i%30;
i=i-Math.floor(i/28)*(1-Math.floor(i/28)*Math.floor(29/(i+1))*Math.floor((21-n)/11));
var j=y+Math.floor(y/4)+i+2-c+Math.floor(c/4);
j=j%7;
var l=i-j;
var m=3+Math.floor((l+40)/44);
var d=l+28-31*Math.floor(m/4);
afficher("C'est le",d,"/",m);
Commentaires