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