problème avec N! factorielle programation en C
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

problème avec N! factorielle programation en C



  1. #1
    mourtoux.f

    problème avec N! factorielle programation en C


    ------

    bonjour, je suis nouveaux sur ce forum j'espere avoir posté mon suject au bon endroit.
    j'ai un gros probleme avec la programation d'une factoriel j'ai apris hier que je devait traiter se sujet surement noté pour demain voila la consigne: calculer N! (factorielle), N est un entier positif saisi au clavier.

    j'ai etait absent pour maladie ces dernier temps et en ratrapant mon retard j'ai aprit que je devait faire cela et aussi j'ai aprit l'existance de la factorielle.
    j'ai un peut pres comprit le principe de la factorielle mais je n'arive pas a trouver "l'équation" logique a programer en C.

    on m'a aussi parler d'incrémentation et je n'ai vraiment pas comprit.

    je voudrai savoir si quelqu'un peut m'aider juste pour le depart et m'expliquer se terme incrémentation.

    merci d'avance.

    -----

  2. #2
    piwi

    Re : problème avec N! factorielle programation en C

    Bonjour.
    Le problème n'est pas compliqué, il faut juste s'organiser un tout petit peu.
    Qu'est ce qu'une factorielle? 1x2x3x....xn
    On voit donc que l'on va devoir incrémenter une variable de 1 à n. On peut donc déjà prévoir une variable int initialisée sur 1, il faut aussi prévoir une autre variable n que l'utilisateur va renseigner pour donner la borne de la factorielle, et enfin, une variable qui va permettre de calculer la factorielle. Ensuite il y a un compteur à mettre en place pour aller de 1 à n. Une boucle fera l'affaire (for; while).
    Je vois donc quelque chose comme ça:
    int i=1, u=1, n= ce que tu veux;
    while (i<n+1)
    {
    u=u*i;
    i++;
    }

    cordialement,
    piwi
    Je sers la science et c'est ma joie.... Il parait.

  3. #3
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    je comprend bien se que tu dit a par l'incrementation qu'es ce que c'est concrétement?! car je ne comprend vraiment pas et je ne comprend pas du tout ton programe u=u*i se qui nous fait u=2 ?!

    je suis desoler je vait peut etre te paraitre nul mais j'ai commencer il y a réelement q'une seul semaine.

  4. #4
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    je doit aussi rendre se travail avec le pseudo code je pence que j'ariverai a faire la transcription de l'un vers l'autre sans probleme mais je me demander si je ferait mieux de commencer par l'un ou part l'autre car le prof nous as conseillé de commencer par le pseudo code mais mes collègue on commencé par le langage C donc je ne sait pas quoi faire je suis vraiment perdu.

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

    Re : problème avec N! factorielle programation en C

    #include <stdio.h>
    #include <stdlib.h>

    void main (void)
    {
    int I,N,U;
    printf("calcule de N! factorielle\n"); //affichage du titre
    printf("entrez la valeur entière de N: "); // affichage
    scanf("%N",&N); //lire N! au clavier
    I=1;
    U=1;
    for(I=0;I<N+1;I++) //incrémentation de I et création d'une boucle
    {U=U*I;
    }
    printf ("la valeur de %N factorielle est %U \n",&N,&U); //affichage du résultat
    system("PAUSE");
    }

    j'ai fait se programe j'ai remplacer le while par un for et j'ai copier un peut sur un programme deja fait en classe je sait pas si c'est corecte et aussi a la fin du programe l'affichage ne marche pas le logiciel me marque "la valeur factorielle est U"

  7. #6
    whoami

    Re : problème avec N! factorielle programation en C

    Bonjour,

    Retour aux bases : papier + crayon

    Tu "exécutes" manuellement le programme instruction par instruction, en notant l'évolution des variables.

    Sinon que ne comprends-tu pas dans le mot "incrémentation" ?

  8. #7
    lucas.gautheron

    Re : problème avec N! factorielle programation en C

    Bonsoir,

    L'incrémentation ce n'est pas compliqué, et une petite recherche donne immédiatement la réponse à votre question : http://fr.wikipedia.org/wiki/Incr%C3%A9mentation
    Visualisez bien la chose :
    0! = 1
    1! = 1
    2! = 1 x 2
    3! = 1 x 2 x 3
    etc.

    pour n!, vous devez multiplier 1 par chaque entier allant de 1 à n.

    A+

  9. #8
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    Ha merci grace a toi j'ai bien comprit le terme d'incrémentation alors en faite si je prend un exemple:

    N!=5!=1x2x3x4x5=120

    donc si je fait quelque chose comme cela:

    {int U=1; I=1;
    for (I=1; I==N; I++)
    {U=U*I
    }
    }

    c'est ça non ?!

  10. #9
    lucas.gautheron

    Re : problème avec N! factorielle programation en C

    Oui, à quelques petites erreurs de syntaxe près (puisque vous avez choisi d'écrire ceci en C)
    ex :
    Code:
    // incorrect : 
    int U=1; I=1;
    
    // correct :
    int U = 1, I = 1;
    De plus, par rapport à votre premier code : on ne passe pas les valeurs par références avec printf. On ne le fait qu'avec scanf pour que la fonction puisse écrire dans les variables. Avec printf on passe les valeurs "par copie"

    A+

  11. #10
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    alors voici se que j'ai fait.


    #include <stdio.h>
    #include <stdlib.h>

    void main (void)
    {
    int I,N,U;
    printf("calcule de N! factorielle\n"); //affichage du titre
    printf("entrez la valeur entière de N: "); // affichage
    scanf("%d",&N); //lire N! au clavier
    U=1;
    I=1;
    for(I=1; I==N; I++) //création d'une boucle et de l'incrémentation de I
    {U=U*I;
    }
    printf ("la valeur de la factoriel est %d",&N); //affichage du résultat
    system("PAUSE");
    }


    alors je ne sait pas mais se n'est pas corecte ma simulation me donne des chiffre super ellevé.
    je ne sait pas trop a quelle endroit sa bloque je pence au niveaux du calcul ou de l'incrémentation je ne sait pas mais il ne fonctionne pas je commence a perdre sérieusement espoir... en tous cas merci a tous de m'avoir aider et de continuer je l'espere.

  12. #11
    piwi

    Re : problème avec N! factorielle programation en C

    Vous avez des exemples de valeurs? Pour N=2 ou N=3 par exemple?
    Nous verrons peut être quel est le problème.
    Je sers la science et c'est ma joie.... Il parait.

  13. #12
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    pour N!=2 j'ai le résultat égal a 2686784
    pour N!=3 j'ai le meme résultat c'est vraiment bizard je voit pas ou est mon ereur vu que le résultat reste le meme pour toute N!

  14. #13
    piwi

    Re : problème avec N! factorielle programation en C

    Je viens de me rendre compte que vous n'avez pas initialisé vos variables. Mettez vos variables I et U à 1 au moment de leurs déclarations et N à 0. Ça devrait régler votre problème.

    Cordialement,
    piwi
    Je sers la science et c'est ma joie.... Il parait.

  15. #14
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    #include <stdio.h>
    #include <stdlib.h>

    void main (void)
    {
    int I=1,N=0,U=1;
    printf("calcule de N! factorielle\n"); //affichage du titre
    printf("entrez la valeur entiere de N: "); // affichage
    scanf("%d",&N); //lire N! au clavier
    for(I=1; I==N; I++) //création d'une boucle et de l'incrémentation de I
    {U=U*I;
    }
    printf ("la valeur de la factoriel est %d \n",&N); //affichage du résultat
    system("PAUSE");
    }

    j'espere avoir fait comme vous me l'avez dit mais sa ne règle pas le problème.
    je garde toujours se 2686784 pour toute N!
    vraiment escuser moi de vous embeté avec sa je sait que vous avez surement pas que sa a faire mais la sa fait presque 4H que je suis desus je comence vraiment a en avoir mare même mes colègues ne voit pas mon éreur.

  16. #15
    piwi

    Re : problème avec N! factorielle programation en C

    Il y a pas mal de petites erreurs dans votre code
    Par exemple, à la fin du programme vous demandez à afficher N et non pas U. Du coup, ça vous explique pourquoi quelque soit N, vous affichez toujours la même valeur. Et ensuite, vous demandez d'afficher l'adresse de N et non pas N lui même, d'où la valeur étrange qui s'affiche.
    Par ailleurs, votre condition dans la boucle for pose problème. Ce que vous demandez est d'appliquer la boucle quand I est égal à N. Or, comme I n'est pas égal à N, la boucle ne s'applique jamais. C'est pour ça que j'avais mis à I<N+1: la boucle s'applique tant que I est inférieur à N+1 (inférieur ou égale à N).
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
     int I=1,N=0,U=1;
     printf("calcule de N! factorielle\n"); //affichage du titre
     printf("entrez la valeur entiere de N: "); // affichage
     scanf("%d",&N); //lire N! au clavier
     for(I=1; I<N+1; I++) //création d'une boucle et de l'incrémentation de I
       {
        U=U*I;
        printf("I=%d et U=%d\n", I, U);
       }
     printf ("la valeur de la factorielle est %d \n", U); //affichage du résultat
     system("PAUSE");
     return 0;
    }
    J'ai testé, ce code fonctionne.

    Cordialement,
    piwi
    Je sers la science et c'est ma joie.... Il parait.

  17. #16
    mourtoux.f

    Re : problème avec N! factorielle programation en C

    ça marche c'est magnifique je vous remercie enormement en plus j'ai tous comprit a vos expliquation j'aivait deja réusit a coriger le pour toute N! 2686784 mais pas pour la boucle en fait c'est juste la condition de ma boucle qui n'etait pas bonne a la fin donc merci énormement merci.

Discussions similaires

  1. Terminale S reccurence avec Sommes et factorielle
    Par inviteb5593971 dans le forum Mathématiques du collège et du lycée
    Réponses: 28
    Dernier message: 21/02/2016, 19h21
  2. Résoudre une inéquation avec factorielle
    Par Bagnolet dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 19/03/2012, 20h23
  3. Terminale S reccurence avec Somme et factorielle
    Par inviteb5593971 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 31/10/2010, 08h56
  4. Limite avec log et factorielle
    Par dsb0 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 22/06/2010, 20h37
  5. derivée avec factorielle
    Par invite87f3c42a dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 21/10/2007, 17h31