teaching:progappchim:suite_de_fibonacci-2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
teaching:progappchim:suite_de_fibonacci-2 [2013/10/17 14:53] – créée villersdteaching:progappchim:suite_de_fibonacci-2 [2017/02/24 08:51] (Version actuelle) villersd
Ligne 2: Ligne 2:
  
 Voici un embryon non fonctionnel de programme. Il y manque alors des éléments (à la place des "???") Voici un embryon non fonctionnel de programme. Il y manque alors des éléments (à la place des "???")
-<sxh python; title : fibonacci02-sur_la_piste.py>+<code python fibonacci02-sur_la_piste.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 10: Ligne 10:
 """ """
 # élément d'indice 0 # élément d'indice 0
-i=0 +i = 0 
-a=1 +a = 0 
-print i,a+print(i,a)
 # élément d'indice 1 # élément d'indice 1
-1=1 += 1 
-b=1 +b = 1 
-print i,a+print(i,b)
  
 # structure de répétition pour appliquer la règle de récurrence # structure de répétition pour appliquer la règle de récurrence
-max=100 # indice du dernier terme (ou presque)+max = 100 # indice du dernier terme (ou presque)
 while ??? < max: while ??? < max:
     # il faut calculer les indices et éléments suivants de la suite     # il faut calculer les indices et éléments suivants de la suite
     # et poursuivre avec les mêmes instructions     # et poursuivre avec les mêmes instructions
     ???     ???
-    print i,c  #quelque chose de ce genre +    print(i,c #quelque chose de ce genre 
-</sxh>+</code>
  
 Un peu de réflexion pour se rendre compte qu'il faut comparer i à max, mais surtout qu'il faudra actualiser i, calculer le nouvel élément de la suite par la relation de récurrence et surtout remettre dans les variables a et b des éléments actualisés (nouveaux, ou décalés dans la file d'une position). Un peu de réflexion pour se rendre compte qu'il faut comparer i à max, mais surtout qu'il faudra actualiser i, calculer le nouvel élément de la suite par la relation de récurrence et surtout remettre dans les variables a et b des éléments actualisés (nouveaux, ou décalés dans la file d'une position).
Ligne 31: Ligne 31:
 On propose alors ceci : On propose alors ceci :
  
-<sxh python; title : fibonacci03-fonctionnel.py>+<code python fibonacci03-fonctionnel.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 39: Ligne 39:
 """ """
 # élément d'indice 0 # élément d'indice 0
-i=0 +i = 0 
-a=0 +a = 0 
-print i,a+print(i,a)
 # élément d'indice 1 # élément d'indice 1
-i=1 +i = 1 
-b=1 +b = 1 
-print i,a+print(i,b)
  
 # structure de répétition pour appliquer la règle de récurrence # structure de répétition pour appliquer la règle de récurrence
-max=100 # indice du dernier terme (ou presque)+max = 100 # indice du dernier terme (ou presque)
 while i < max: while i < max:
     # il faut calculer les indices et éléments suivants de la suite     # il faut calculer les indices et éléments suivants de la suite
     # et poursuivre avec les mêmes instructions     # et poursuivre avec les mêmes instructions
-    c=a+b +    c = a + b 
-    i=i+1 +    i = i + 1 
-    print i,c  #quelque chose de ce genre +    print(i,c) 
-    a=b +    a = b 
-    b=c +    b = c 
-</sxh>+</code>
  
 Mais avons-nous terminé ? Ce programme a-t-il toutes les caractéristiques d'un code Python utile ? Mais avons-nous terminé ? Ce programme a-t-il toutes les caractéristiques d'un code Python utile ?
Ligne 69: Ligne 69:
   * ...   * ...
  
-[[suite_de_fibonacci-3|Des réponses à la page suivante !]]+En guise de préambule, on peut aussi regarder comment rendre un code python plus compact en groupant les commentaires avec les instructions, et en utilisant les affectations multiples (un signe "=" pour des affectations à plusieurs variables séparées par des virgules). Voilà ce que cela donne ((Pour décider de ce qui est mieux, c'est simplement une question de préférence personnelle)) 
 + 
 + 
 +<code python fibonacci04-compact.py> 
 +#! /usr/bin/env python 
 +# -*- coding: utf-8 -*- 
 +""" 
 +Calculs des premiers éléments de la suite de Fibonacci. 
 +Référence : http://fr.wikipedia.org/wiki/Suite_de_Fibonacci 
 +""" 
 +i, a = 0, 0 # élément d'indice 0 
 +print(i,a) 
 +i, b = 1, 1 # élément d'indice 1 
 +print(i,b) 
 +max = 100 # indice du dernier terme (ou presque) 
 +while i < max:  # structure de répétition pour appliquer la règle de récurrence 
 +    # indices et éléments suivants de la suite 
 +    i, c = i+1, a+b 
 +    print(i,c) 
 +    a, b = b, c 
 +</code> 
 + 
 +[[http://fr.wikipedia.org/wiki/Suite_de_Fibonacci#Applications|{{http://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Fibonacci_spiral_34.svg/200px-Fibonacci_spiral_34.svg.png }}]]On peut utiliser le module [[https://docs.python.org/3.6/library/turtle.html|turtle]] pour représenter un début de la spirale de Fibonacci. Il suffit d'ajouter quelque lignes au programme : 
 + 
 +<code python fibonacci-turtle.py> 
 +#! /usr/bin/env python 
 +# -*- coding: utf-8 -*- 
 +""" 
 +Calculs des premiers éléments de la suite de Fibonacci. 
 +Référence : http://fr.wikipedia.org/wiki/Suite_de_Fibonacci 
 +Représentation en spirale utilisant turtle 
 +""" 
 +from turtle import * 
 +reset() 
 +up() 
 +forward(50) 
 +down() 
 +scale = 2 
 +i, a = 0, 0 # élément d'indice 0 
 +print(i,a) 
 +i, b = 1, 1 # élément d'indice 1 
 +print(i,b) 
 +max = 12 # indice du dernier terme (ou presque) 
 +while i < max:  # structure de répétition pour appliquer la règle de récurrence 
 +    # indices et éléments suivants de la suite 
 +    i, c = i+1, a+b 
 +    print(i,c) 
 +    a, b = b, c 
 +    # xturtle moves : 
 +    circle(c*scale,90) 
 +          
 +input('Tapez sur une touche pour arrêter !') 
 +</code> 
 + 
 +[[suite_de_fibonacci-3|Pour l'écriture de fonctions, allez à la page suivante !]]
  
  • teaching/progappchim/suite_de_fibonacci-2.1382014380.txt.gz
  • Dernière modification : 2013/10/17 14:53
  • de villersd