Adloun

NSI (première) · Chapitre 9 · Exercice de TD

On exécute le programme de boucle donné en remarque dans le cours…

Machines, systèmes et réseaux · Von Neumann et langage machine · niveau 2

Énoncé

On exécute le programme de boucle donné en remarque dans le cours, avec et .

  • Combien de fois chacune des six lignes est-elle exécutée ? Combien de pas au total ?
  • Que contient à la fin ? Cette valeur vous semble-t-elle utile ?
  • Que se passe-t-il si contient au lieu de ? Distinguer et .

Corrigé

1. Chaque CHARGE du début : une fois. Le test SAUTESI : fois ( fois pour entrer dans le corps, une sixième pour en sortir). SOUSTRAIT et SAUTE : fois chacun. RANGE : une fois. Total pas.

Contrôle : le test est toujours exécuté une fois de plus que le corps — c'est le test qui fait sortir. Avec , le corps n'est jamais exécuté et il reste pas.

2. . Le compteur a été décrémenté jusqu'à zéro, et c'est zéro qu'on range. La valeur n'apprend rien : ce programme ne calcule rien, il consomme un compteur. Une boucle utile ferait quelque chose dans son corps — accumuler, comparer, écrire.

3. Avec , le compteur descend de deux en deux.

  • : . Le test réussit, le programme s'arrête, , en pas.
  • : Le compteur saute par-dessus zéro et ne l'atteint jamais. SAUTESI teste l'égalité à , pas le signe : la boucle ne se termine jamais, et RANGE n'est jamais atteint.

Piège central : lire « tant que le compteur est positif » là où l'instruction dit « si le compteur vaut exactement zéro ». C'est le variant du chapitre 7 : il ne suffit pas qu'une quantité décroisse, il faut qu'elle atteigne la valeur testée. Un test d'inégalité aurait rendu le programme sûr pour tout pas.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →