Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*************************************/
- /* NOM : mon_nom PRENOM : mon_prenom */
- /*************************************/
- /* Ecrire un programme qui calcule et affiche le triangle de pascal.
- Celui-ci est definie de la maniere suivante :
- soient p et n, deux entiers positifs avec p<=n, le nombre situe
- dans la colonne p du triangle (en comptant a partir de 0 les colonnes)
- et la ligne n (en comptant a partir de 0 les lignes) indique le nombre
- de combinaisons possibles de p elements dans un ensemble a n elements.
- Ce nombre de combinaisons est defini par C(n,p) = n! / ( p! (n-p)! ),
- ou x! indique le factoriel de x.
- Le programme calcule et affiche tous les elements du triangle pour n<=N,
- avec N donne pas l'utilisateur. Les combinaisons sur une meme ligne seront
- separees par une tabulation.
- Exemple : si N=5, le triangle affiche sera :
- 1
- 1 1
- 1 2 1
- 1 3 3 1
- 1 4 6 4 1
- 1 5 10 5 5 1
- */
- #include <stdio.h>
- #include <stdlib.h>
- // Ecrire une fonction <fact> qui calcule le factoriel d'un entier <x>
- // passe en parametre d'entree et renvoie ce factoriel en sortie.
- int fact(int x)
- {
- int i;
- int res = 1;
- if(x == 0)
- return 1;
- for( i = 1 ; i <= x ; i++ )
- {
- res = res * i;
- }
- return res;
- }
- // Ecrire une fonction <combinaisons> qui calcule le nombre de combinaisons
- // possibles de <p> elements dans un ensemble a <n> elements, puis renvoie
- // ce nombre en sortie ; <p> et <n> seront passees en parametres d'entree.
- int combinaisons(int n , int p)
- {
- int x = n-p;
- return fact(n) / ( fact(p) * fact(x));
- }
- // Ecrire une procedure <affiche_triangle> qui calcule et affiche le triangle
- // de Pascal pour tous n<=N, N fourni en parametre d'entree.
- void affiche_triangle(int N)
- {
- int n , p;
- for( n = 0 ; n <= N ; n++ )
- {
- for(p = 0 ; p <=n ; p++)
- {
- printf("%d\t",combinaisons(n,p));
- }
- printf("\n");
- }
- }
- // Completer la fonction principale
- int main()
- {
- int N;
- // Saisie du nombre <N> par l'utilisateur ;
- // attention a verifier si celui-ci est bien positif.
- printf("Saisir N : ");
- scanf("%d",&N);
- if (N > 0)
- {
- affiche_triangle(N);
- }
- else
- {
- printf("N est negatif\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement