Bonjour,
et avant tout, merci de m'accorder une partie de votre temps.
Je dois écrire un algorithme qui donne en sortie l'affichage du vingtième nombre de la suite "logique" :
1,1,2,3,5,8,13,21,34,55...
J'ai remarqué que pour calculer un terme, on additionnait les deux précédents.
Ainsi, lorsqu'il demande de définir par récurrence la suite concernée j'ai mis : Un+1=Un+Un-1.
Il me semble que cela pourrait être juste.
Mais bien que j'ai plus ou moins compris comment fonctionné cette suite je ne vois vraiment pas comment en écrire l'algorithme..
Ce Devoir Maison est un DM Cours, je n'ai donc aucune base sur laquelle m'appuyer et j'ai beau essayer je n'y parvient vraiment pas..
J'espère que quelqu'un pourra m'aider ; merci beaucoup d'avance.
Bonjour
Alors ta remarque est correct ta suite est bien définie comme tu l'as dit (c'est la suite de Fibonacci pour ta culture g )
Alors pour calculer chaque terme tu as besoin des deux précédents, donc dans ton algorithme il va falloir que tu gardes en mémoire te deux derniers termes que l'on va appeler Un etUn-1.Tu auras donc 3 variable à identifier et à initialiser dans ton algorithme. Ensuite pour faire tourne ce programme jusqu'à la vingtième, il va falloir que tu fasses une boucle pour.
Essaye de faire déjà une esquisse de cet algorithme et ensuite je te corrigerai et on le complêtera ensemble.
Bonjour, oui c'est ça, elle s'appelle fibonacci
Pour écrire un algorithme, tu déclares tes variables, tu demandes N , tu initialises A=1 et B=1 et puis tu fais une petite boucle POUR I = 1 à N ; U=A+B ; A=B ; B=U ; I suivant et puis tu affiches U
Avant tout, vraiment merci pour votre aide !
• Variables.
a est du type nombre.
b est du type nombre.
c est du type nombre.
• Début de l'algorithme.
a prend la valeur 1.
b prend la valeur a-1.
-Pour a allant de 1 jusqu'à 20.
c prend la valeur a + b.
Fin pour.
Afficher c.
• Fin de l'algorithme.
Glapion, je suis désolée mais je le comprends pas vraiment.. Je n'ai jamais réellement fait d'algorithme et ça me parait vraiment compliqué.
Alors pour plus de clarté il vaut mieux prendre Un+1 Un etUn-1 comme variable plutôt que a,b et c c'est plus parlant.
Alors pour la déclaration de variables OK
Ensuite pour l'initialisation pourquoi dis-tu que b prend la valeur a-1 la deuxième valeur de la suite c'est 1 donc ton b vaut 1 aussi et non a-1.
Donc si on reprends avec les notations :
Un-1 reçoit 1
Un reçoit 1
Ensuite pour la boucle ce n'ets pas a qui va varier surtout pas il faut prendre une autre variable (souvent on prend i). Par contre il ne faut pas la faire aller jusqu'à 20 car dès le début la valeur de c (Un+1) c'eest en fait la troisième valeur. Donc si tu veux la vingtième il faut que tu arrête à 20-2=18.
Ensuite une dernière remarque (un peu plus technique) dans ta boucle ton a et b on toujours la même valeurs qui sont les valeurs de départ. Mais ce n'est pas ce qu'il faut faire dans ta suite logique tu ne fais pas toujous Un=1+1 donc il faut changer aussi à chaque fois Un-1 et Un.
JE vais écrire le programme en faisant des trous. A toi de remplir
Variables :
Un-1 ; Un ; Un+1 sont du type nombre
Algorithme :
Un-1 prend la valeur ?
Un prend la valeur ?
Pour i allant de 1 à ?
Un+1=?;
Un=?
Un-1=?
Fin boucle pour
Afficher Un+1;
(Encore une fois merci.)
Si j'ai utilisé des lettres tel que a, b.. C'est parce que seulement celles-ci sont acceptées sur Algoboxe et que je ne savais pas si d'autres pouvaient convenir.
Variables :
Un-1 ; Un ; Un+1 sont du type nombre
Algorithme :
Un-1 prend la valeur 1.
Un prend la valeur 1.
Pour i allant de 1 à 18.
Un+1=2
Un=1
Un-1=1
Fin boucle pour
Afficher Un+1=2.
il ne va pas ton algorithme, tes valeurs a et b ne changent jamais donc c vaudra donc a+b à chaque fois.
je t'ai dit de plutôt essayer celui-là :
Lire N
A=1
B=1
Pour I allant de 1 à N
U=A+B
A=B
B=U
I suivant
Afficher U
Fait le fonctionner à la main ou pas à pas dans Algobox pour comprendre ce qu'il fait. Ça n'est pas si compliqué que ça. Et puis on ne peut pas faire plus simple, il faut absolument à chaque pas que A et B prennent les deux dernières valeurs de la suite.
Bonjour glapion dans ton algo tu ne liras pas la 20ème mais la 22ème valeur de la suite non? Ne faudrait-il pas arrêter la boucle à 18?
Sinon Tlffany l'algo de glapion est correct c'est ce que je voulais te faire faire.
oui désolé yogodo, je n'avais pas vu que tu avais commencé à lui expliquer comment faire l'algorithme quand j'ai posté le mien.
Et effectivement si on veut afficher 20 termes de la suite, il faut faire la boucle de 1 à 18 et inutile de demander la valeur de N à l'utilisateur.
Un grand merci à tous les deux !
Je me sens même un peu idiote d'y avoir passer autant de temps en vain.
Je sais désormais que l'on peut redéfinir des valeurs en cours de programme, bien que cela me paraisse complexe.
c'est vrai qu'au début l'algorithme peut paraître complexe mais c'est en s'entrainant que l'on comprend de mieux en mieux les rouages de ce genre de choses...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :