Exercice langage C : Matrices
Ecrire un programme qui construit le triangle de PASCAL de degré N et le mémorise dans une matrice carrée P de dimension N+1.
Exemple: Triangle de Pascal de degré 6:
n=0 |
1 | ||||||||
n=1 | 1 | 1 | |||||||
n=2 | 1 | 2 | 1 | ||||||
n=3 | 1 | 3 | 3 | 1 | |||||
n=4 | 1 | 4 | 6 | 4 | 1 | ||||
n=5 | 1 | 5 | 10 | 10 | 5 | 1 | |||
n=6 | 1 | 6 | 15 | 20 | 15 | 6 | 1 |
Méthode:
Calculer et afficher seulement les valeurs jusqu'à la diagonale principale (incluse). Limiter le degré à entrer par l'utilisateur à 13.
Construire le triangle ligne par ligne:
- Initialiser le premier élément et l'élément de la diagonale à 1.
- Calculer les valeurs entre les éléments initialisés de gauche à droite en utilisant la relation:
Pi,j = Pi-1,j + Pi-1,j-1
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 32 33 34 35 |
#include <stdio.h> main() { /* Déclarations */ int P[14][14]; /* matrice résultat */ int N; /* degré du triangle */ int I, J; /* indices courants */ /* Saisie des données */ do { printf("Entrez le degré N du triangle (max.13) : "); scanf("%d", &N); } while (N>13||N<0); /* Construction des lignes 0 à N du triangle: */ /* Calcul des composantes du triangle jusqu'à */ /* la diagonale principale. */ for (I=0; I<=N; I++) { P[I][I]=1; P[I][0]=1; for (J=1; J<I; J++) P[I][J] = P[I-1][J] + P[I-1][J-1]; } /* Edition du résultat */ printf("Triangle de Pascal de degré %d :\n", N); for (I=0; I<=N; I++) { printf(" N=%2d", I); for (J=0; J<=I; J++) if (P[I][J]) printf("%5d", P[I][J]); printf("\n"); } return 0; } |