Affichage du Résultat
Dans cette étape, nous allons améliorer notre programme de calcul de permutation en ajoutant des options de sortie plus détaillées et de formatage.
Modifions le fichier permutations.c pour améliorer la présentation du résultat :
cd ~/project
nano permutations.c
Mettre à jour le code avec une impression de résultat améliorée :
#include <stdio.h>
// Fonction pour calculer la factorielle
unsigned long long factorial(int num) {
unsigned long long result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// Fonction pour calculer la permutation (nPr)
unsigned long long permutation(int n, int r) {
// Vérification de l'entrée invalide
if (r > n) {
printf("Erreur : r ne peut pas être supérieur à n\n");
return 0;
}
// Calcul de nPr en utilisant la formule : n! / (n-r)!
return factorial(n) / factorial(n - r);
}
// Fonction pour afficher les détails de la permutation
void printPermutationDetails(int n, int r, unsigned long long result) {
printf("\n--- Détails du calcul de la permutation ---\n");
printf("Nombre total d'éléments (n) : %d\n", n);
printf("Nombre d'éléments sélectionnés (r) : %d\n", r);
printf("Calcul : %d P %d = %d! / (%d - %d)!\n", n, r, n, n, r);
printf("Résultat : %llu arrangements différents possibles\n", result);
printf("----------------------------------------\n");
}
int main() {
int n, r;
printf("Calculateur de permutation (nPr)\n");
printf("Entrez le nombre total d'éléments (n) : ");
scanf("%d", &n);
printf("Entrez le nombre d'éléments à sélectionner (r) : ");
scanf("%d", &r);
unsigned long long result = permutation(n, r);
if (result > 0) {
printPermutationDetails(n, r, result);
}
return 0;
}
Compilation et exécution du programme :
gcc permutations.c -o permutations
./permutations
Exemple de sortie :
Calculateur de permutation (nPr)
Entrez le nombre total d'éléments (n) : 5
Entrez le nombre d'éléments à sélectionner (r) : 3
--- Détails du calcul de la permutation ---
Nombre total d'éléments (n) : 5
Nombre d'éléments sélectionnés (r) : 3
Calcul : 5 P 3 = 5! / (5 - 3)!
Résultat : 60 arrangements différents possibles
----------------------------------------
Améliorations clés :
- Ajout d'une fonction
printPermutationDetails() dédiée.
- Sortie plus informative sur le calcul.
- Explication de la formule de permutation et du résultat.
- Interface utilisateur améliorée avec un titre et une explication détaillée.