Calculer l'Étendue d'un Ensemble de Données en C

CBeginner
Pratiquer maintenant

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 :

  1. Nous définissons une taille maximale de tableau de 100 éléments.
  2. La fonction swap() permet d'échanger deux éléments du tableau.
  3. sortArray() utilise le tri à bulles pour organiser les éléments par ordre croissant.
  4. 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 :

  1. Ajout de la fonction calculateRange() pour calculer l'étendue
  2. L'étendue est calculée en soustrayant le premier (minimum) élément du dernier (maximum) élément du tableau trié
  3. 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 :

  1. Ajout de la fonction printRangeAnalysis() pour fournir une sortie complète
  2. Inclusion d'un contexte supplémentaire sur l'étendue et la variabilité des données
  3. 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.