Les Maths en Seconde

L'essentiel pour réussir!

Algorithmes

Exercice 5

Dans cet exercice, toute trace de recherche, même non aboutie, serait prise en compte lors de la notation

On considère un programme associé à l'algorithme suivant:

Lire $N$
$U$ ← 4
Pour $I$ allant de 0 à $ N-1$
   $U$ ← $3×U$
Fin du Pour
Afficher $U$

1. Donner les valeurs successives prises par $I$ et $U$ lorsque le programme fonctionne pour une valeur de $N$ égale à 2.

2. Une éprouvette contient 4 bactéries. Chaque heure, le nombre de bactéries est multiplié par 3.
Préciser l'utilité de ce programme relativement à la situation proposée.

3. Parmi les 3 algorithmes suivants, un seul est équivalent à l'algorithme initial
Lequel est-ce? (inutile de justifier)
Expliquer pourquoi les 2 autres algorithmes ne conviennent pas.

Algorithme 1

Lire $N$
$U$ ← 4
$I$ ← 0
Tant que $I≤N$
   $U$ ← $3×U$
   $I$ ← $I+1$
Fin du Pour
Afficher $U$

Algorithme 2

Lire $N$
$U$ ← 4
$I$ ← 0
Tant que $I$<$N$
   $U$ ← $3×U$
   $I$ ← $I+1$
Fin du Pour
Afficher $U$

Algorithme 3

Lire $N$
$U$ ← 4
$I$ ← 0
Tant que $I$<$N$
   $U$ ← $3×U$
Fin du Pour
Afficher $U$

4. Proposer l'algorithme d'un programme qui ne contient pas de boucle, mais qui a la même fonction que l'algorithme proposé dans l'énoncé.

Solution...

Corrigé

1. $N=2$; $U=4$.
On note que $N-1=2-1=1$.
I varie donc de 0 à 1.

Juste avant la première boucle: $I=0$
Première boucle: (on a bien $I≤1$); $U=3×4=12$;
Fin de la première boucle;
$I$ est augmenté automatiquement de 1, et vaut donc 1.
Seconde boucle: (on a bien $I≤1$); $U=3×12=36$;
Fin de la seconde boucle;
Il n'y a pas de troisième boucle car I varie de 0 à 1, et il a atteint 1 à la fin de la dernière boucle.
Finalement, il s'affiche la valeur de $U$, c'est à dire 36.

2. Si U représente le nombre de bactéries au bout d'un certain temps, alors $3×U$ donne le nombre de bactéries 1 heure plus tard.
Le programme proposé demande à l'utilisateur de saisir un nombre d'heures $N$ et affiche alors le nombre de bactéries après N heures.
Par exemple, pour $N=2$, le programme renvoie 36. Il y a donc 36 bactéries dans l'éprouvette au bout de 2 heures.

3. L'algorithme correct est le second.

Le premier algorithme ne convient pas, car, par exemple, pour $N=0$, il devrait afficher 4, mais il affichera 12 (car la première boucle va s'effectuer).
Le troisième algorithme ne convient pas, car, par exemple, pour $N=1$, les boucles vont s'enchaîner sans jamais s'arrêter, car $I$ reste constamment à 0, et par là, la condition $I$<$N$ est toujours vérifiée!

4. On constate que, au bout de N heures, $U=4×3×3×3×3...×3$ (avec un nombre de 3 égal à N).
Par conséquent, au bout de N heures, $U=4×3^N$.
D'où l'algorithme très simple ci-dessous:

Lire $N$
$U$ ← $4×3^N$
Afficher $U$

Réduire...

Copyright 2016 - maths-2de.com - Toute reproduction interdite - Tous droits réservés.