Introduction
Dans ce laboratoire, vous apprendrez à trouver l'étendue d'un ensemble de données en programmation C. Le laboratoire couvre les étapes suivantes : 1) Lire et trier le tableau, 2) Calculer l'étendue en déterminant la différence entre les valeurs maximale et minimale, et 3) Afficher l'étendue. Le laboratoire fournit un guide étape par étape avec un exemple de code pour vous aider à comprendre le processus d'analyse des propriétés statistiques d'un ensemble de données à l'aide de C.
Lecture et tri du tableau
Dans cette étape, vous apprendrez à lire un tableau de nombres et à le trier afin de préparer le calcul de l'étendue. Nous utiliserons une approche simple pour saisir et organiser l'ensemble de données.
Commençons par créer un programme C pour lire et trier un tableau :
#include <stdio.h>
#define MAX_SIZE 100
// Fonction pour échanger deux éléments
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Fonction de tri à bulles pour trier le tableau
void sortArray(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
int main() {
int numbers[MAX_SIZE];
int n;
// Lecture du nombre d'éléments
printf("Entrez le nombre d'éléments (max %d) : ", MAX_SIZE);
scanf("%d", &n);
// Saisie des éléments du tableau
printf("Entrez %d entiers :\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Tri du tableau
sortArray(numbers, n);
// Affichage du tableau trié
printf("Tableau trié : ");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Décomposons les composants clés :
- Nous définissons une taille maximale de tableau de 100 éléments.
- La fonction
swap()permet d'échanger deux éléments du tableau. sortArray()utilise le tri à bulles pour organiser les éléments par ordre croissant.- Dans
main(), nous :- Lisons le nombre d'éléments
- Saissons les éléments du tableau
- Trions le tableau
- Affichons le tableau trié
Exemple de compilation et d'exécution :
gcc -o array_sort array_sort.c
./array_sort
Exemple de sortie :
Entrez le nombre d'éléments (max 100) : 5
Entrez 5 entiers :
42 15 7 23 11
Tableau trié : 7 11 15 23 42
Étendue = Max - Min
Dans cette étape, vous apprendrez à calculer l'étendue d'un ensemble de données en déterminant la différence entre les valeurs maximale et minimale dans le tableau trié.
Modifions le programme précédent pour calculer l'étendue :
#include <stdio.h>
#define MAX_SIZE 100
// Fonction pour échanger deux éléments
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Fonction de tri à bulles pour trier le tableau
void sortArray(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
// Fonction pour calculer l'étendue
int calculateRange(int arr[], int size) {
// Si le tableau est vide, renvoyer 0
if (size == 0) return 0;
// L'étendue est la différence entre le dernier (max) et le premier (min) élément
return arr[size - 1] - arr[0];
}
int main() {
int numbers[MAX_SIZE];
int n;
// Lecture du nombre d'éléments
printf("Entrez le nombre d'éléments (max %d) : ", MAX_SIZE);
scanf("%d", &n);
// Saisie des éléments du tableau
printf("Entrez %d entiers :\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Tri du tableau
sortArray(numbers, n);
// Calcul et affichage de l'étendue
int range = calculateRange(numbers, n);
printf("Valeur minimale : %d\n", numbers[0]);
printf("Valeur maximale : %d\n", numbers[n - 1]);
printf("Étendue : %d\n", range);
return 0;
}
Modifications clés dans cette étape :
- Ajout de la fonction
calculateRange()pour calculer l'étendue - L'étendue est calculée en soustrayant le premier (minimum) élément du dernier (maximum) élément du tableau trié
- Ajout d'instructions d'affichage pour montrer les valeurs minimale, maximale et l'étendue
Exemple de compilation et d'exécution :
gcc -o range_calculator range_calculator.c
./range_calculator
Exemple de sortie :
Entrez le nombre d'éléments (max 100) : 5
Entrez 5 entiers :
42 15 7 23 11
Valeur minimale : 7
Valeur maximale : 42
Étendue : 35
L'étendue représente l'amplitude de l'ensemble de données, calculée en soustrayant la plus petite valeur de la plus grande valeur dans le tableau trié.
Affichage de l'Étendue
Dans cette dernière étape, vous apprendrez à formater et à afficher les résultats du calcul de l'étendue de manière conviviale, en ajoutant un contexte statistique à la sortie.
Créons une version améliorée de notre programme de calcul d'étendue :
#include <stdio.h>
#define MAX_SIZE 100
// Fonction pour échanger deux éléments
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Fonction de tri à bulles pour trier le tableau
void sortArray(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
// Fonction pour calculer l'étendue
int calculateRange(int arr[], int size) {
// Si le tableau est vide, renvoyer 0
if (size == 0) return 0;
// L'étendue est la différence entre le dernier (max) et le premier (min) élément
return arr[size - 1] - arr[0];
}
// Fonction pour afficher des informations détaillées sur l'étendue
void printRangeAnalysis(int arr[], int size, int range) {
printf("\n--- Analyse statistique de l'étendue ---\n");
printf("Taille de l'ensemble de données : %d\n", size);
printf("Valeur minimale : %d\n", arr[0]);
printf("Valeur maximale : %d\n", arr[size - 1]);
printf("Étendue : %d\n", range);
// Informations supplémentaires
printf("\nInterprétation :\n");
printf("L'étendue représente la dispersion des valeurs dans l'ensemble de données.\n");
printf("Une étendue plus grande indique une plus grande variabilité des données.\n");
}
int main() {
int numbers[MAX_SIZE];
int n;
// Lecture du nombre d'éléments
printf("Entrez le nombre d'éléments (max %d) : ", MAX_SIZE);
scanf("%d", &n);
// Saisie des éléments du tableau
printf("Entrez %d entiers :\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Tri du tableau
sortArray(numbers, n);
// Calcul de l'étendue
int range = calculateRange(numbers, n);
// Affichage de l'analyse détaillée de l'étendue
printRangeAnalysis(numbers, n, range);
return 0;
}
Améliorations clés dans cette étape :
- Ajout de la fonction
printRangeAnalysis()pour fournir une sortie complète - Inclusion d'un contexte supplémentaire sur l'étendue et la variabilité des données
- Formatage de la sortie pour plus d'informations et de lisibilité
Exemple de compilation et d'exécution :
gcc -o range_analysis range_analysis.c
./range_analysis
Exemple de sortie :
Entrez le nombre d'éléments (max 100) : 6
Entrez 6 entiers :
10 25 7 42 15 33
--- Analyse statistique de l'étendue ---
Taille de l'ensemble de données : 6
Valeur minimale : 7
Valeur maximale : 42
Étendue : 35
Interprétation :
L'étendue représente la dispersion des valeurs dans l'ensemble de données.
Une étendue plus grande indique une plus grande variabilité des données.
Le programme fournit désormais une vue plus complète de l'étendue de l'ensemble de données, aidant les utilisateurs à comprendre la signification statistique du calcul.
Résumé
Dans ce laboratoire, vous avez d'abord appris à lire et à trier un tableau de nombres à l'aide d'un algorithme de tri à bulles simple. Cette étape a préparé l'ensemble de données pour le calcul de l'étendue. Ensuite, vous apprendrez à déterminer l'étendue de l'ensemble de données en soustrayant la valeur minimale de la valeur maximale dans le tableau trié. Enfin, vous afficherez l'étendue calculée. Les points clés appris dans les étapes précédentes sont la lecture et le tri d'un tableau, ainsi que le concept d'étendue d'un ensemble de données.



