Correction algorithme non-spé BAC S 2013 (Centres Etrangers)
Posted: 08 Sep 2013, 16:27
Bonjour,
Aujourd'hui nous allons regarder ensemble l'algorithme qui est tombé dans l'exercice non-Spécialité du BAC S dans les Centres Etrangers en juin 2013, dans le contexte de suites récurrentes comme la plupart du temps:
Question A)1)
Il nous faut donc compléter l'algorithme fourni, qui se doit de calculer par récurrence le 9ème terme de la suite, et dans lequel deux affectations sont incomplètes. C'est un algorithme type, et les deux affectations correspondent au calcul de récurrence, et à l'incrémentation du rang.
Resterait encore à vérifier à la calculatrice graphique si notre algorithme est juste, en le traduisant en un programme. Remarquons que l'énoncé nous donne gentiment un tableau de valeurs de la suite à la question A)3), mais que le terme u9 n'y figure pas. Nous allons donc par exemple apporter une toute petite modification au programme en question, en lui faisant demander le rang du terme à calculer, ce qui nous permettra de vérifier la justesse de l'algorithme avec les autres termes du tableau.
Voici par exemple le programme adéquat pour TI-76/82/83/84, et qui nous confirme bien la valeur de u6 du tableau:
Si vous ne disposez pas de ce type de calculatrice, on réalise tout aussi facilement un programme équivalent pour TI-Nspire, Casio Graph/Prizm/fx-CG, ou HP-39gII/Prime:
Il faut bien faire attention à ne pas utiliser de multiplication implicite sur les modèles formels, dont ici la TI-Nspire et la HP-Prime.
Petit détail sur Casio Classpad/fx-CP, où le résultat est affiché par défaut sous forme fractionnaire exacte, non directement comparable avec les valeurs du tableau:
Il faut faire appel à la fonction approx() afin de bien obtenir une forme décimale approchée:
Question A)2)
On nous demande donc maintenant de modifier l'algorithme obtenu pour qu'il affiche tous les termes de u2 à u9. Il nous suffit donc de déplacer l'instruction d'affichage finale dans la boucle, afin qu'elle soit exécutée pour toutes les valeurs de la suite:
Afin de vérifier avec davantage de confort le bon fonctionnement de notre algorithme sur calculatrice graphique, nous afficherons le rang n en même temps que le terme associé. Il nous suffira alors de comparer avec le tableau de valeurs de la question A)3).
Voici des programmes pour TI-76/82/83/84, TI-Nspire, Casio Graph/Prizm/fx-CG, HP-39gII/Prime et Casio Classpad/fx-CP:
Question A)3)
Au vu du seul tableau de valeurs présenté par l'énoncé, on peut conjecturer que la suite u est strictement décroissante et converge vers 0,01.
Vient ensuite une partie B) où à l'aide d'une suite géométrique auxiliaire v, il est démontré que la suite u est bien strictement décroissante, mais converge en fait vers 0 et non 0,01. Notre conjecture était donc partiellement fausse. Nous retournons ensuite à l'algorithmique avec la partie C):
Partie C)
On nous demande donc de reprendre l'algorithme de la partie A), pour rechercher le rang n du premier terme vérifiant un<0,001. L'algorithme de la partie A) affiche la valeur du 9ème terme u9. L'instruction d'affichage finale devra donc déjà être modifiée pour afficher un rang et non un terme. D'autre part, pour s'arrêter non pas au 9ème terme mais au premier terme vérifiant un<0,001, il nous faut changer la condition de poursuite de la boucle tant que, en la remplaçant par le contraire logique de la condition d'arrêt recherchée, soit ici un≥0,001. Tout sortie de la boucle vérifiera donc forcément un<0,001, et comme la suite u converge vers 0 on est sûr que cela se produira.
Voici par exemple un programme traduisant cet algorithme pour TI-76/82/83/84, et qui nous répond 1001.
Mais comment savoir si 1001 est bien la bonne réponse? La suite u étant strictement décroissante, réutilisons donc simplement notre programme de la question A)1) afin de vérifier les valeurs des termes u1000 et u1001:
u1001 est donc bien le premier terme strictement inférieur à 0,001.
Si vous ne disposez pas de ces calculatrices, voici maintenant les programmes équivalents pour TI-Nspire, Casio Graph/Prizm/fx-CG et HP-39gII/Prime:
Et les Casio Classpad/fx-CP diront certains d'entre vous? Voici le programme, mais...
... mais il n'y a pas de résultat?
... en fait la calculatrice est encore en train de réfléchir, comme l'indique l'icône en bas à droite...
... aurais-je fait une erreur? toutes les autres calculatrices ci-dessus ont à peine mis plus d'une seconde, juste le temps de lâcher la touche entrée...
... ça commence à faire long, déjà plusieurs minutes...
Et ben non, tout est normal, il faut attendre... 6 MINUTES ET 40 SECONDES!!!
Non, ce n'est pas une blague...
Bref, comme toute personne normale, et qui plus est pendant un examen, vous alliez sûrement douter de vous, vous interroger, et interrompre le programme pour en vérifier le code bien avant ce délai...
Bon certes, nous savons que, si on met l'écran de côté, le matériel des Casio fx-CP400 est très inférieur à celui des TI-Nspire ou HP-Prime... Certes, j'ai toujours lu sur les forums Casio que le langage Basic des Casio Classpad était lent...
Mais 400 fois plus lent que toutes les autres calculatrices du marché il y a peut être exagération là, non?...
La calculatrice met donc de l'ordre de la demi-seconde pour chacune des itérations de la boucle, ce qui est tout simplement énorme pour un processeur. Tentons de comprendre ce qu'elle peut bien fabriquer pendant tout ce temps, en affichant le terme de la suite à chaque itération:
Ah voilà... Cela rejoint le problème que nous avions déjà évoqué à la question A)1). La calculatrice utilise en interne une forme fractionnaire exacte pour le terme u, forme qui devient au fur et à mesure des itérations de plus en plus complexe avec énormément de chiffres aux numérateur et dénominateur. Nous allons donc encore une fois corriger le problème avec la fonction approx(), pour forcer le mode décimal approché:
Ah voilà c'est beaucoup mieux, et j'ai déjà le résultat. Il m'a juste fallu attendre 50 SECONDES cette fois-ci...
Non en fait c'est nul, ça reste beaucoup trop long, et dans les 50 fois plus lent que toutes les autres calculatrices ci-dessus. Et de plus pour un algorithme type de BAC relativement simple (pas de boucles imbriquées ou ce genre de chose). Devant l'importance qu'a pris l'algorithmique dans l'enseignement secondaire français ces dernières années, thème qui tombe désormais au BAC dans toutes les séries, y compris littéraires et technologiques, je ne peux conseiller l'achat de cette calculatrice qui est tout simplement inadaptée au lycée et au BAC. Comme de plus l'aventure algorithmique se poursuit depuis cette rentrée au delà du lycée, notamment avec les nouveaux programmes de BTS et de prépa, on peut également émettre des réserves sur son adéquation à l'enseignement supérieur scientifique. N'importe lequel des autres modèles évoqués ci-dessus sera moins cher et surtout beaucoup plus rapide.
Téléchargement:
BAC S: sujets toutes matières et corrigés 2012-2013
Aujourd'hui nous allons regarder ensemble l'algorithme qui est tombé dans l'exercice non-Spécialité du BAC S dans les Centres Etrangers en juin 2013, dans le contexte de suites récurrentes comme la plupart du temps:
Question A)1)
Il nous faut donc compléter l'algorithme fourni, qui se doit de calculer par récurrence le 9ème terme de la suite, et dans lequel deux affectations sont incomplètes. C'est un algorithme type, et les deux affectations correspondent au calcul de récurrence, et à l'incrémentation du rang.
- Code: Select all
Variables:
n est un entier naturel
u est un réel
Initialisation:
Affecter à n la valeur 1
Affecter à u la valeur 1,5
Traitement:
Tant que n<9
Affecter à u la valeur (nu+1)/(2(n+1))
Affecter à n la valeur n+1
Fin Tant que
Sortie:
Afficher la variable u
Resterait encore à vérifier à la calculatrice graphique si notre algorithme est juste, en le traduisant en un programme. Remarquons que l'énoncé nous donne gentiment un tableau de valeurs de la suite à la question A)3), mais que le terme u9 n'y figure pas. Nous allons donc par exemple apporter une toute petite modification au programme en question, en lui faisant demander le rang du terme à calculer, ce qui nous permettra de vérifier la justesse de l'algorithme avec les autres termes du tableau.
Voici par exemple le programme adéquat pour TI-76/82/83/84, et qui nous confirme bien la valeur de u6 du tableau:
Si vous ne disposez pas de ce type de calculatrice, on réalise tout aussi facilement un programme équivalent pour TI-Nspire, Casio Graph/Prizm/fx-CG, ou HP-39gII/Prime:
Il faut bien faire attention à ne pas utiliser de multiplication implicite sur les modèles formels, dont ici la TI-Nspire et la HP-Prime.
Petit détail sur Casio Classpad/fx-CP, où le résultat est affiché par défaut sous forme fractionnaire exacte, non directement comparable avec les valeurs du tableau:
Il faut faire appel à la fonction approx() afin de bien obtenir une forme décimale approchée:
Question A)2)
On nous demande donc maintenant de modifier l'algorithme obtenu pour qu'il affiche tous les termes de u2 à u9. Il nous suffit donc de déplacer l'instruction d'affichage finale dans la boucle, afin qu'elle soit exécutée pour toutes les valeurs de la suite:
- Code: Select all
Variables:
n est un entier naturel
u est un réel
Initialisation:
Affecter à n la valeur 1
Affecter à u la valeur 1,5
Traitement et sorties:
Tant que n<9
Affecter à u la valeur (nu+1)/(2(n+1))
Affecter à n la valeur n+1
Afficher la variable u
Fin Tant que
Afin de vérifier avec davantage de confort le bon fonctionnement de notre algorithme sur calculatrice graphique, nous afficherons le rang n en même temps que le terme associé. Il nous suffira alors de comparer avec le tableau de valeurs de la question A)3).
Voici des programmes pour TI-76/82/83/84, TI-Nspire, Casio Graph/Prizm/fx-CG, HP-39gII/Prime et Casio Classpad/fx-CP:
Question A)3)
Au vu du seul tableau de valeurs présenté par l'énoncé, on peut conjecturer que la suite u est strictement décroissante et converge vers 0,01.
Vient ensuite une partie B) où à l'aide d'une suite géométrique auxiliaire v, il est démontré que la suite u est bien strictement décroissante, mais converge en fait vers 0 et non 0,01. Notre conjecture était donc partiellement fausse. Nous retournons ensuite à l'algorithmique avec la partie C):
Partie C)
On nous demande donc de reprendre l'algorithme de la partie A), pour rechercher le rang n du premier terme vérifiant un<0,001. L'algorithme de la partie A) affiche la valeur du 9ème terme u9. L'instruction d'affichage finale devra donc déjà être modifiée pour afficher un rang et non un terme. D'autre part, pour s'arrêter non pas au 9ème terme mais au premier terme vérifiant un<0,001, il nous faut changer la condition de poursuite de la boucle tant que, en la remplaçant par le contraire logique de la condition d'arrêt recherchée, soit ici un≥0,001. Tout sortie de la boucle vérifiera donc forcément un<0,001, et comme la suite u converge vers 0 on est sûr que cela se produira.
- Code: Select all
Variables:
n est un entier naturel
u est un réel
Initialisation:
Affecter à n la valeur 1
Affecter à u la valeur 1,5
Traitement:
Tant que u≥0,001
Affecter à u la valeur (nu+1)/(2(n+1))
Affecter à n la valeur n+1
Fin Tant que
Sortie:
Afficher la variable n
Voici par exemple un programme traduisant cet algorithme pour TI-76/82/83/84, et qui nous répond 1001.
Mais comment savoir si 1001 est bien la bonne réponse? La suite u étant strictement décroissante, réutilisons donc simplement notre programme de la question A)1) afin de vérifier les valeurs des termes u1000 et u1001:
u1001 est donc bien le premier terme strictement inférieur à 0,001.
Si vous ne disposez pas de ces calculatrices, voici maintenant les programmes équivalents pour TI-Nspire, Casio Graph/Prizm/fx-CG et HP-39gII/Prime:
Et les Casio Classpad/fx-CP diront certains d'entre vous? Voici le programme, mais...
... mais il n'y a pas de résultat?
... en fait la calculatrice est encore en train de réfléchir, comme l'indique l'icône en bas à droite...
... aurais-je fait une erreur? toutes les autres calculatrices ci-dessus ont à peine mis plus d'une seconde, juste le temps de lâcher la touche entrée...
... ça commence à faire long, déjà plusieurs minutes...
Et ben non, tout est normal, il faut attendre... 6 MINUTES ET 40 SECONDES!!!
Non, ce n'est pas une blague...
Bref, comme toute personne normale, et qui plus est pendant un examen, vous alliez sûrement douter de vous, vous interroger, et interrompre le programme pour en vérifier le code bien avant ce délai...
Bon certes, nous savons que, si on met l'écran de côté, le matériel des Casio fx-CP400 est très inférieur à celui des TI-Nspire ou HP-Prime... Certes, j'ai toujours lu sur les forums Casio que le langage Basic des Casio Classpad était lent...
Mais 400 fois plus lent que toutes les autres calculatrices du marché il y a peut être exagération là, non?...
La calculatrice met donc de l'ordre de la demi-seconde pour chacune des itérations de la boucle, ce qui est tout simplement énorme pour un processeur. Tentons de comprendre ce qu'elle peut bien fabriquer pendant tout ce temps, en affichant le terme de la suite à chaque itération:
Ah voilà... Cela rejoint le problème que nous avions déjà évoqué à la question A)1). La calculatrice utilise en interne une forme fractionnaire exacte pour le terme u, forme qui devient au fur et à mesure des itérations de plus en plus complexe avec énormément de chiffres aux numérateur et dénominateur. Nous allons donc encore une fois corriger le problème avec la fonction approx(), pour forcer le mode décimal approché:
Ah voilà c'est beaucoup mieux, et j'ai déjà le résultat. Il m'a juste fallu attendre 50 SECONDES cette fois-ci...
Non en fait c'est nul, ça reste beaucoup trop long, et dans les 50 fois plus lent que toutes les autres calculatrices ci-dessus. Et de plus pour un algorithme type de BAC relativement simple (pas de boucles imbriquées ou ce genre de chose). Devant l'importance qu'a pris l'algorithmique dans l'enseignement secondaire français ces dernières années, thème qui tombe désormais au BAC dans toutes les séries, y compris littéraires et technologiques, je ne peux conseiller l'achat de cette calculatrice qui est tout simplement inadaptée au lycée et au BAC. Comme de plus l'aventure algorithmique se poursuit depuis cette rentrée au delà du lycée, notamment avec les nouveaux programmes de BTS et de prépa, on peut également émettre des réserves sur son adéquation à l'enseignement supérieur scientifique. N'importe lequel des autres modèles évoqués ci-dessus sera moins cher et surtout beaucoup plus rapide.
Téléchargement:
BAC S: sujets toutes matières et corrigés 2012-2013