teaching:progappchim:factorielle-2

Ceci est une ancienne révision du document !


Factorielle : un premier programme

Voici un embryon non fonctionnel de programme. Il y manque des éléments (à la place des “???”) <sxh python; title : factorielle02-sur_la_piste.py> #! /usr/bin/env python # -*- coding: utf-8 -*- “”“ Calcul de la factorielle d'un nombre Référence : http://fr.wikipedia.org/wiki/Factorielle ”“” # on demande le nombre : print “Calcul de la factorielle de n” chainelue=raw_input(“Que vaut n ? ”) n= int(chainelue) print n

# structure de répétition pour appliquer la définition de la factorielle reponse=1 # la réponse sera dans la variable reponse i=1 # on va commencer par 1 while ??? ⇐ n: # répétition “while” avec une condition à préciser

  reponse = ????    #actualisation de reponse
  i=                #incrémenter i

# on affiche la réponse print “La factorielle vaut ”,reponse </sxh>

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> #! /usr/bin/env python # -*- coding: utf-8 -*- “”“ Calcul de la factorielle d'un nombre Référence : http://fr.wikipedia.org/wiki/Factorielle ”“” # on demande le nombre : print “Calcul de la factorielle de n” chainelue=raw_input(“Que vaut n ? ”) n= int(chainelue) print n

# structure de répétition pour appliquer la définition de la factorielle reponse=1 # la réponse sera dans la variable reponse i=1 # on va commencer par 1 while i ⇐ n: # répétition “while” avec une condition à préciser

  reponse = reponse*i    #actualisation de reponse
  i=i+1                #incrémenter i

# on affiche la réponse print “La factorielle vaut ”,reponse </sxh>

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 pythontutor (vous y préciser n plutôt que de le demander).

Mais avons-nous terminé ? Ce programme a-t-il toutes les caractéristiques d'un code Python utile ?

Non, car il ne fait que la sortie d'une factorielle et nécessite une interaction avec l'utilisateur ! Il faudrait :

  • créer une fonction qui renvoie la factorielle d'un nombre passé en argument

FIXME : à compléter…

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/factorielle-2.1423559165.txt.gz
  • Dernière modification : 2015/02/10 10:06
  • de villersd