Avant la boucle :
M = 0 et nb =0
ensuite, à tour de rôle :
M<- M + 3*nb ce qui fait 0+3*0=0 donc M vaut 0 après cette ligne.
nb<- nb+1 donc ce qui fait 0+1=1, donc nb vaut 1 à la fin de cette ligne.
Condition de boucle : est-ce que M<15 ? oui donc on continue.
M<- M + 3*nb ce qui fait 0+3*1=3, donc M vaut 3 à la fin de cette ligne.
nb<-nb+1 ce qui fait 1+1=2, donc nb vaut 2 à la fin de cette ligne.
Condition de boucle : est-ce que M<15 ? oui donc on continue.
M<- M + 3*nb ce qui fait 3+3*2=9, donc M vaut 9 à la fin de cette ligne.
nb<-nb+1 ce qui fait 2+1=3, donc nb vaut 3 à la fin de cette ligne.
Condition de boucle : est-ce que M<15 ? oui donc on continue.
M<- M + 3*nb ce qui fait 9+3*3=18, donc M vaut 18 à la fin de cette ligne. (*)
(*) Je pense que la boucle ne peut pas passer à la ligne suivante puisque M=18>15 donc elle revient à la boucle précèdente et elle affiche nb=3
Pour régler ce probléme j'ai rajouter un 3 au nombre entrer par l'utilisateur pour pouvoir passer à la boucle suivante et j'obtiens ce algorithme :
Debut
Ecrire ("Entrer un entier :");
Lire (n);
M <- 0;
nb<- 0;
N <- n+3;
Tant que (M<N) faire
M <- M+nb*3;
nb<- nb+1;
Fin tant que
Ecrire ("Le nombre des entiers est :",nb);
Fin
J'espére que c'est bon maintenant :)