Bonsoir,
J'ai un exercice me présentant 3 algorithmes différents que j'ai mit sous forme d'image dans un soucis de mise en forme
J'ai une suite (uₙ) définie sur l'ensemble des entiers de N par u₀=20 et la relation de récurrence uₙ₊₁ = 5-(1/2)uₙ
La question qui m'est posée est la suivante : "On désire afficher à l'aide d'un algorithme la valeur de uₙ pour tout entier n donné en entrée. Parmi les algorithmes, lesquels répondent à la question ?"
Et ensuite : "On désire afficher maintenant tous les termes de la suite jusqu'à un entier n donné. Modifier les algorithmes répondant à la première question pour obtenir le résultat."
Avant de pouvoir répondre à ces questions (et les suivantes), j'aimerais comprendre ces algorithmes (je n'ai jamais été très à l'aise dans la matière)
Pourriez-vous m'expliquer leur fonctions et leurs différences ? On m'a dit que les algorithmes A et C répondaient à la question 1), je ne suis pas du genre à copier bêtement alors je tente de savoir pourquoi ici.
Merci de votre potentielle aide
Bonsoir,
Pour répondre à la première question, on va commencer déjà par éliminer le C car on cherche à ce que la boucle de l'algorithme continue jusqu'à arriver à n, or on a "While i<n Do". On a strictement inférieur donc on arrive pas jusqu'à la valeur n.. Donc le C est à éliminer.
Il faut savoir qu'en Algorithmique, il y a deux possibilités de boucles, celle avec "Pour" qui continuera la boucle jusqu'à une certaine valeur et celle avec "Tant que" qui, tant que la condition spécifiée n'a pas été réalisée, continue de fonctionner.
Donc du coup tu as tes deux algorithmes restant; il faut bien les comprendre pour pouvoir continuer.
Dans le premier, on attribut au réel u la valeur U0 qui est 20.
On utilise donc "Pour" afin de dire à l'algorithme de fonctionner de U1 à Un et à chaque boucle on attribut à u la valeur 5-u/2 et on demande à écrire u à la toute fin.
Dans le deuxième, on définit U0 ainsi que i qu'on démarre au 0 (initial). Tant que i inférieurà n, la boucle continuera, mais à chaque boucle, on augmente la valeur de i de 1 pour arriver jusqu'à i=n; et là l'algorithme finira et affichera u pour i=n.
Et pour la deuxième question, je dirais juste qu'il faut intégrer le "Write u" à la boucle.
Bonsoir et merci beaucoup pour ta réponse.
Je pense avoir compris assimilé tes explications pour la première question, les programmes sont déjà plus clairs pour moi.
Concernant la seconde question c'est la réflexion que j'ai eu, mais je ne suis pas sûr de moi concernant son emplacement.
Pour moi il faudrait l'intégrer à la fin de chaque boucle afin d'écrire chaque terme, est-ce correct ou fais-je fausse route ?
Par la suite on me demande, en m'aidant des questions précédentes de conjecturer la limite de la suite (un)
Là aussi je ne trouve pas le raisonnement, pourrais-je avoir une piste qui me guiderais pour avancer ?
Bonjour,
Bonjour.
L'algorithme B affiche les termes de U(1) à U(n+1); il n'affiche pas U(0).
Les algorithmes A et C affichent les termes de U(1) à U(n).
Quand n = 0, le programme B affiche U(1), le programme C n'affiche rien, le programme A affiche U(1) ou rien selon la machine.
Pour afficher les termes de U(0) à U(n), y compris quand n = 0, l'affichage doit être la première instruction de la boucle, avant l'incrémentation de I :
Var : n, i : Integer
u : real
Begin
Read n
U = 20
While i <= n
Write U
i = i+1
U = 5-U/2
EndWhile 'délimite la boucle
End
Au moment ou i égalera n, U(n) sera affiché, les instructions i = i+1 et U = 5-U/2 seront exécutées "à vide".
Bonjour plumemeteore,
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :