Programme informatique python
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Programme informatique python



  1. #1
    leon266

    Programme informatique python


    ------

    Bonjour, voici mon énoncé :
    1) écrire une fonction fact(n) qui calcule et retourne la factorielle de n
    2) utiliser cette fonction pour écrire une fonction qui renvoie C(n,p)=n!/p!(n-p)!
    3) utiliser les fonctions précédentes dans un programme qui affiche les coefficients du binome pour toutes les valeurs de n dans (0,1,...,20) : C(n,0), C(n,1)... sous forme de triangle de pascal

    J'ai déjà fais la question 1 et 2, le programme tourne et affiche les bon résultats. cependant pour la question 3 mon programme ne marche pas. Pouvez-voue m'aider svp? Merci d'avance


    Code:
    def fact(n):
             factorielle=1
             for i in range (2,n+1):
                     factorielle=factorielle*i
             return(factorielle)
    
    def combinaison(n,p):
        x=(fact(n))/(fact(p)*fact(n-p))
        x=int(x)
        return(x)
    n=int(input("quelle est la valeur de n?"))
    p=int(input("que vaut p?"))
    print(combinaison(n,p))
    
    def triangle_pascal(n):
        for i in range(n):
            for j in range(i+1):
                x=combinaison(i,j)
                print(x, end="  ")
            print()
        return x
    print(triangle_pascal(n))

    -----
    Dernière modification par JPL ; 15/08/2018 à 19h13. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    pm42

    Re : Programme informatique python

    Sans balise CODE et donc sans le formatage, c'est tout de suite plus compliqué de t'aider.

  3. #3
    JPL
    Responsable des forums

    Re : Programme informatique python

    Je l’ai ajoutée.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  4. #4
    leon266

    Re : Programme informatique python

    oui, merci je ne savais pas comment faire

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Programme informatique python

    A la louche, je dirais qu'il faut mettre :
    Code:
    def triangle_pascal(n):
        for i in range(n+1):

  7. #6
    Loupsio

    Re : Programme informatique python

    A l'avenir pourrais tu être un peu plus spécifique quand tu dis que quelque chose ne marche pas, "qu'est ce qui ne marche pas"?? (pas le bon résultat?, bon résultat, mais des trucs en trop? bon résultat mais des trucs manquants?, message d'erreur qui avorte le programme?)

    outre l'erreur qu'a noté pm42, (sans ça il te manque une ligne), tu as aussi le problème que ton programme commence une ligne supplémentaire avec juste un "1"
    par exemple pour n=3 (après correction de pm42) il renvoi
    1
    121
    1331
    1

    pour n=2 il renvoi
    1
    121
    1

    ce "1" final n'a rien a faire là,

    pour le reste il semble marcher correctement,

    Par contre tant que tes programmes sont petit ca ne pose pas trop de souci, mais par convention (et parce que plus tard avec un gros programme ça te posera réellement problème), toutes les définitions se mettent en haut du programme, tu dois déclarer toutes tes fonctions, et seulement ensuite mettre le reste de ton code, un input ne devrait pas se trouver entre deux fonctions

  8. #7
    Loupsio

    Re : Programme informatique python

    PS :
    pourquoi faire un return dans ta fonction triangle pascal?

    si "x" contenait l'ensemble du triangle 'un coup, je comprendrai, car tu fait un print de ta fonction donc tu printerai tout ton triangle d'un coup, sauf que x ne contient qu'un integer à la fois et que de toute façon tu as des print directement "dans" ta fonction, donc il n'y a rien a retourner, elle les ecrit directement pendant que la fonction tourne,
    de même que le return ne sert à rien (et est la cause du "1" supplémentaire) le print qui encadre l'appel de ta fonction (print(triangle_pascal) ) ne sert à rien non plus, puisque les print sont déjà dans la fonction et que le "x" que tu voulais retourner ne contient qu'une valeur et non pas le triangle entier de toute facon
    tu peux supprimer à la fois le return à la fin de la fonction, et le print qui encadre l'appel de fonction, ca résoudra par là même le "1" qui est de trop
    Dernière modification par Loupsio ; 18/08/2018 à 10h45.

Discussions similaires

  1. Programmation informatique python
    Par leon266 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 10/08/2018, 15h40
  2. [Python] Problème de lag de programme et essai de Timer python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 20
    Dernier message: 26/01/2018, 15h14
  3. Programme Python
    Par coockie13 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 29/01/2017, 07h50
  4. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 18h56
  5. Programme en Python
    Par invitec13ffb79 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 19/09/2011, 19h14