teaching:progappchim:factorielle-2

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
teaching:progappchim:factorielle-2 [2015/02/17 10:08] villersdteaching:progappchim:factorielle-2 [2017/02/24 09:19] (Version actuelle) villersd
Ligne 2: Ligne 2:
  
 Voici un embryon non fonctionnel de programme. Il y manque des éléments (à la place des "???") Voici un embryon non fonctionnel de programme. Il y manque des éléments (à la place des "???")
-<sxh python; title : factorielle02-sur_la_piste.py>+<code python factorielle02-sur_la_piste.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 10: Ligne 10:
 """ """
 # on demande le nombre : # on demande le nombre :
-print "Calcul de la factorielle de n" +print("Calcul de la factorielle de n") 
-chainelue=raw_input("Que vaut n ? ") +chainelue = input("Que vaut n ? ") 
-n= int(chainelue) +n = int(chainelue) 
-print n+print(n)
  
 # structure de répétition pour appliquer la définition de la factorielle # structure de répétition pour appliquer la définition de la factorielle
 reponse=1  # la réponse sera dans la variable reponse reponse=1  # la réponse sera dans la variable reponse
-i=1  # on va commencer par 1+i = 1  # on va commencer par 1
 while ??? <= n:  # répétition "while" avec une condition à préciser while ??? <= n:  # répétition "while" avec une condition à préciser
     reponse = ????    #actualisation de reponse     reponse = ????    #actualisation de reponse
-    i=                #incrémenter i+    i =                #incrémenter i
  
 # on affiche la réponse # on affiche la réponse
-print "La factorielle vaut ",reponse +print("La factorielle vaut ",reponse) 
-</sxh>+</code>
  
 Un peu de réflexion pour se rendre compte qu'il faut comparer i à n, qu'il faut multiplier reponse par i pour obtenir une nouvelle valeur de reponse, et augmenter i de 1 par l'instruction "i = i + 1". On propose donc ceci :  Un peu de réflexion pour se rendre compte qu'il faut comparer i à n, qu'il faut multiplier reponse par i pour obtenir une nouvelle valeur de reponse, et augmenter i de 1 par l'instruction "i = i + 1". On propose donc ceci : 
  
-<sxh python; title : factorielle03-fonctionnel.py>+<code python factorielle03-fonctionnel.py>
 #! /usr/bin/env python #! /usr/bin/env python
 # -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
Ligne 36: Ligne 36:
 """ """
 # on demande le nombre : # on demande le nombre :
-print "Calcul de la factorielle de n" +print("Calcul de la factorielle de n") 
-chainelue=raw_input("Que vaut n ? ")+chainelue = input("Que vaut n ? ")
 n= int(chainelue) n= int(chainelue)
-print n+print(n)
  
 # structure de répétition pour appliquer la définition de la factorielle # structure de répétition pour appliquer la définition de la factorielle
-reponse=1  # la réponse sera dans la variable reponse +reponse = 1  # la réponse sera dans la variable reponse 
-i=1  # on va commencer par 1+i = 1  # on va commencer par 1
 while i <= n:  # répétition "while" avec une condition à préciser while i <= n:  # répétition "while" avec une condition à préciser
-    reponse = reponse*i    #actualisation de reponse +    reponse = reponse * i    #actualisation de reponse 
-    i=i+1                #incrémenter i+    i = i + 1                #incrémenter i
  
 # on affiche la réponse # on affiche la réponse
-print "La factorielle vaut ",reponse +print("La factorielle vaut ",reponse) 
-</sxh>+</code>
  
 Le test du programme indique qu'il fonctionne comme attendu pour toutes les valeurs strictement positives de n, et même pour n=0. Avez-vous compris pourquoi ? Pour bien comprendre le fonctionnement du programme, vous pouvez examiner le fonctionnement d'une version simplifiée à l'aide de [[http://www.pythontutor.com/visualize.html#code=n%3D5%0Areponse%3D1%0Ai%3D1%0Awhile+i+%3C%3D+n%3A%0A++++reponse+%3D+reponse*i%0A++++i%3Di%2B1%0A%0Aprint+%22La+factorielle+de+%22,n,%22+vaut+%22,reponse%0A&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=2&rawInputLstJSON=%5B%5D&curInstr=0|pythontutor]] (vous y préciser n plutôt que de le demander). Le test du programme indique qu'il fonctionne comme attendu pour toutes les valeurs strictement positives de n, et même pour n=0. Avez-vous compris pourquoi ? Pour bien comprendre le fonctionnement du programme, vous pouvez examiner le fonctionnement d'une version simplifiée à l'aide de [[http://www.pythontutor.com/visualize.html#code=n%3D5%0Areponse%3D1%0Ai%3D1%0Awhile+i+%3C%3D+n%3A%0A++++reponse+%3D+reponse*i%0A++++i%3Di%2B1%0A%0Aprint+%22La+factorielle+de+%22,n,%22+vaut+%22,reponse%0A&mode=display&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=2&rawInputLstJSON=%5B%5D&curInstr=0|pythontutor]] (vous y préciser n plutôt que de le demander).
  • teaching/progappchim/factorielle-2.txt
  • Dernière modification : 2017/02/24 09:19
  • de villersd