Algorithme de calcul des premiers termes d'une suite http://www.maths-cours.fr/methodes/suites/algor... Algorithme de calcul des premiers termes d'une suite Savoir-faire : Ecrire un algorithme calculant les termes d'une suite Situation On considère une suite (un) définie par son premier terme u0 et par une relation de récurrence du type un + 1 = f (un) On souhaite écrire un algorithme permettant de calculer et d'afficher les termes u0 à uk où k est un nombre entré par l'utilisateur. 1. Algorithme Voici un algorithme répondant à la question pour la suite (un) définie par : u0 = 3 un + 1 = 0,5un + 2 Remarque : Cet algorithme n'est pas le seul possible. 1. Variables i et k sont des entiers naturels u est un réel 2. 3. Entrée Saisir la valeur de k 4. Début traitement : u prend la valeur 3 5. Afficher u 6. Pour i allant de 1 à k 7. u prend la valeur 0,5 × u + 2 8. Afficher u Fin Pour 9. 10. Fin traitement 2. Commentaires Lignes 1 et 2 : On définit 3 variables : k contiendra la valeur saisie par l'utilisateur qui déterminera l'arrêt de la boucle. k ne sera pas modifié lors du traitement mais gardera une valeur constante i contiendra le rang (indice) du terme que l'on calcule à partir du rang 1. i variera de 1 à k 1 sur 3 27/10/2015 20:16 Algorithme de calcul des premiers termes d'une suite http://www.maths-cours.fr/methodes/suites/algor... u contiendra les valeurs de ui . Notez que l'on définit une seule variable pour l'ensemble des termes de la suites. Au départ cette variable sera initialisée à u0 . Puis on calculera u1 qui viendra «écraser» u0 . Puis u2 viendra écraser u1 et ainsi de suite... Ligne 3 : La valeur saisie par l'utilisateur qui déterminera l'arrêt de l'algorithme est stockée dans la variable k Ligne 4 : On initialise u en lui donnant la valeur de u0 (ici u0 = 3 ). Ligne 5 : On affiche la valeur de u (qui contient actuellement 3 ). Cette ligne est nécessaire pour afficher la valeur de u0 car la boucle qui suit n'affichera que les valeurs de u1 à un . Ligne 6 : On crée une boucle qui fera varier l'indice i de 1 à k . Puisqu'ici on connait le nombre d'itérations k , une boucle Pour a été préférée à une boucle Tant que. Ligne 7 : On modifie la valeur de u : La nouvelle valeur de u sera égale à l'ancienne valeur de u fois 0,5 plus 2 . Cela traduit bien la relation de récurrence un + 1 = 0,5un + 2 . Ligne 8 : On affiche le terme que l'on vient de calculer (à savoir ui ). Ligne 9 : On « ferme » la boucle; on retourne à la ligne 6; si i valait k , la boucle se terminera alors et on passera à la ligne 10. Ligne 10 : L'algorithme est terminé ! Remarque : Il faut toujours être très attentif au nombre de passages dans la boucle et au nombre d'affichages. Pour vérifier son algorithme, on peut : faire « tourner » l'algorithme (c'est à dire créer un tableau contenant les valeurs des variables étape par étape) - voir 3. ci-dessous. compter le nombre d'affichages : Ici on souhaite afficher les valeurs de u0 à uk , c'est à dire k + 1 valeurs. La ligne 5. effectue un premier affichage (de u0 ). La boucle affichera, quant à elle, k valeurs puisque i varie de 1 à k En tout on a donc bien effectué k + 1 affichages. 3. Résultats Le tableau ci dessous récapitule les valeurs prises par les variables pour k = 4 k i fin de boucle ? u 4 - - 3 4 1 non 3,5 4 2 non 3,75 4 3 non 3,875 4 4 non 3,9375 4 5 oui 4. Variante 2 sur 3 27/10/2015 20:16 Algorithme de calcul des premiers termes d'une suite http://www.maths-cours.fr/methodes/suites/algor... Cette fois, on ne souhaite pas afficher toutes les valeurs de u0 à uk mais uniquement la valeur uk . Les modifications à apporter à l'algorithme sont les suivantes : On supprime la ligne 5 puisque l'on ne souhaite plus afficher u0 On supprime la ligne 8 puisque l'on ne souhaite plus afficher tous les termes de u1 à un On ajoute une ligne « Afficher u » après la boucle pour afficher la dernière valeur calculée dans la boucle (et qui correspond à uk ) On obtient l'algorithme ci-dessous : 1. Variables u est un réel 2. 3. Entrée Saisir la valeur de k 4. Début traitement : u prend la valeur 3 Pour i allant de 1 à k 5. u prend la valeur 0,5 × u + 2 6. 7. Fin Pour 8. Afficher u 9. 3 sur 3 i et k sont des entiers naturels Fin traitement 27/10/2015 20:16