Dénombrements

Contenu du snippet

Ce programme permet de calculer des arrangements, des combinaisons et des factorielles.

Source / Exemple :


#include<stdio.h>// pour printf() et scanf()
#include<stdlib.h>//pour exit()
#include<conio.h>//pour getche()
/********************************************************************************

  • PRESENTATION *
                                                                                                                                                                • /
int presentation(void) { printf("________________________________________________________________________________\n\n"); printf(" DENOMBREMENTS \n"); printf("________________________________________________________________________________\n\n\n"); printf("Ce programme permet de calculer des combinaisons,des arrangements\net des factorielles\n"); printf("\n\nQue voulez-vous faire?\a\n\n"); printf("1. Calculer des combinaisons\n"); printf("2. Calculer des arrangements\n"); printf("3. Calculer une factorielle \n"); printf("4. Quitter\n"); printf("Votre choix :"); return 0; } /********************************************************************************
  • FACTORIELLES *
                                                                                                                                                                • /
unsigned double factorielle(unsigned double n) { unsigned int i;//indice unsigned double resultat1=1;// si on initialise pas cette variable, le resultat donnera n'importe quoi for(i=1;i<=n;i++) { resultat1*=i;// rappel: n!=1*2*3*.....*n } return resultat1; } /*********************************************************************************
  • ARRANGEMENTS *
                                                                                                                                                                  • /
unsigned double arrangement(unsigned double m,unsigned double p) { unsigned int a;//indice unsigned double resultat2=1;//idem que pour factorielle for(a=m;a>=(m-p+1);a--) { resultat2*=a; } return resultat2; } /********************************************************************************
  • COMBINAISONS *
                                                                                                                                                                • /
unsigned double combinaison(unsigned double n,unsigned double k) { return (arrangement(n,k)/factorielle(k));//C-n-k = A-n-k/k! } /*********************************************************************************
  • MAIN *
                                                                                                                                                                  • /
int main() { int choix; unsigned double b,c; presentation(); scanf("%d",&choix); if(choix<1 || choix>4) { printf("Entrez un nombre compris entre 1 et 4"); scanf("%d",&choix); } else { switch(choix) { case 1:{ printf("Calcul de C-n-k:\n"); printf("Entrez la valeur de n (n>0):"); scanf("%ld",&b); printf("\nEntrez la valeur de k (k>n):"); scanf("%ld",&c); if(b<=0 || c<=0) { printf("Les nombres doivent etre strictement positifs!!\n"); } else { printf("La valeur de C-%u-%u est %u\n",b,c,combinaison(b,c)); } } break; case 2:{ printf("Calcul de A-n-k:\n"); printf("Entrez la valeur de n (n>0):"); scanf("%ld",&b); printf("\nEntrez la valeur de k (k>n):"); scanf("%ld",&c); if(b<=0 || c<=0) { printf("Les nombres doivent etre strictement positifs!!\n"); } else { printf("La valeur de A-%u-%u est %u\n",b,c,arrangement(b,c)); } } break; case 3:{ printf("Calcul de n!:\n"); printf("Entrez la valeur de n :"); scanf("%ld",&b); if(b<0) { printf("n doit etre strictement positif!!\n"); } else if(b==0) { printf("La valeur de 0! est 1\n"); } else { printf("La valeur de %u! est %u\n",b,factorielle(b)); } } break; case 4:exit(1); break; } printf("Appuyer sur une touche pour quitter"); getche(); exit(1); return 0; } }

Conclusion :


Il y a des problèmes à partir de certains nombres. J'essaierai de les résoudre très bientôt

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.