IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

mon programme donne une valeur fausse


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut mon programme donne une valeur fausse
    mon programme donne une valeur fausse !
    j'ai ecrit un programme qui demande à l' utilisateur de saisir deux entiers positifs non nuls p et n. p étant bien sûr inférieur à n. Puis le programme affiche la combinaison de p dans n.

    voilà la formule
    n!/p! * (n-p)!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    package Mesessaies; 
    import java.util.Scanner; 
    public class exercice1 
    { 
    public static void main (String []args) 
    { 
    int p,n; int factorielp=1,factorieln=1,factorieln_p=1; 
    Scanner sc=new Scanner(System.in); 
    System.out.print("entrez un nb entier non nul p:"); 
    p=sc.nextInt(); 
    System.out.print("entrez un nb entier non nul supérieur à p:"); 
    Scanner sc1=new Scanner(System.in); 
    n=sc.nextInt(); 
    for(int i=1; i<=n; i++) 
    { 
    factorielp+=i; 
    } 
    for (int i=1; i<=n;i++) 
    { 
    factorieln+=i; 
    } 
    int n_p=n-p; 
    for (int i=1; i<=n_p; i++) 
    { 
    factorieln_p +=i; 
    } 
    int combinaison=(factorieln)/(factorielp)*(factorieln_p); 
    System.out.println( "valeur combinaison="+combinaison) ; 
    } 
    }
    resultat
    entrez un nb entier non nul p:3
    entrez un nb entier non nul n supérieur à p:9
    valeur de combinaison =:22

    après la forumule, valeur de combinaison doit être 18 mais le prg trouve 22
    n/p*(n-p)
    9/3*(9-3)
    3*6=18

    Où est ce que je fais erreur ? veuillez m’expliquez s’il vous plaît

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par domxaline Voir le message
    après la forumule, valeur de combinaison doit être 18 mais le prg trouve 22
    n/p*(n-p)
    9/3*(9-3)
    3*6=18
    C'est normal que tu ne calcules pas les factoriels ???

    a++

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    explique toi,s'il te plaît

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Ben, dans la formule et le code source que tu donnes, tu calcules des factorielles, mais on ne les retrouves pas dans ton calcul "à la main"...

    a++

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    si je corrige mon programme comme ça !!

    {
    factorielp*=i;
    }

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    tu devrais écrire une méthode à part pour te calculer les factorielles, ça serait plus facile pour toi de tester ...

    De plus, il me semble que "qui dit factorielle dit récursivité". Mais en même temps ça ne change pas grand chose ...

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par domxaline Voir le message
    si je corrige mon programme comme ça !!

    {
    factorielp*=i;
    }
    Oui déjà la factorielle utilise la multiplication et non pas l'addition...


    Mais l'erreur est surtout dans ton calcul manuel : lorsque tu vérifies le résultat tu ne calcules pas les factorielles !


    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/12/2010, 10h33
  2. Lancer mon programme dans une console, en dehors d'Eclipse.
    Par Pierre8r dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 10/10/2008, 20h14
  3. Comment protéger mon programme contre une copie ?
    Par bolanoy dans le forum Langage
    Réponses: 4
    Dernier message: 18/07/2008, 17h11
  4. Lien qui donne une valeur à une variable
    Par marie4449 dans le forum Langage
    Réponses: 1
    Dernier message: 10/04/2007, 13h08
  5. TINYINT [M] _ pourquoi donné une valeur à M ?
    Par sportBlond dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/08/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo