Berechnung des Wertebereichs eines Datensatzes in C

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor lernen Sie, wie man den Wertebereich (Range) eines Datensatzes in der C-Programmierung ermittelt. Das Labor umfasst die folgenden Schritte: 1) Lesen und Sortieren des Arrays, 2) Berechnen des Wertebereichs durch Differenzbildung zwischen dem maximalen und minimalen Wert und 3) Ausgeben des Wertebereichs. Das Labor bietet eine schrittweise Anleitung mit Beispielcode, um Ihnen den Prozess der Analyse statistischer Eigenschaften eines Datensatzes mithilfe von C zu verdeutlichen.

Lesen und Sortieren des Arrays

In diesem Schritt lernen Sie, wie Sie ein Zahlenarray einlesen und sortieren, um die Berechnung des Wertebereichs vorzubereiten. Wir verwenden eine einfache Methode zur Eingabe und Organisation des Datensatzes.

Erstellen wir zunächst ein C-Programm zum Einlesen und Sortieren eines Arrays:

#include <stdio.h>

#define MAX_SIZE 100

// Funktion zum Vertauschen zweier Elemente
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Bubble-Sort-Funktion zum Sortieren des Arrays
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;

    // Anzahl der Elemente einlesen
    printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
    scanf("%d", &n);

    // Arrayelemente eingeben
    printf("Geben Sie %d ganze Zahlen ein:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // Array sortieren
    sortArray(numbers, n);

    // Sortiertes Array ausgeben
    printf("Sortiertes Array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

Betrachten wir die wichtigsten Komponenten:

  1. Wir definieren eine maximale Arraygröße von 100 Elementen.
  2. Die Funktion swap() hilft beim Vertauschen zweier Arrayelemente.
  3. sortArray() verwendet den Bubblesort-Algorithmus, um die Elemente in aufsteigender Reihenfolge anzuordnen.
  4. In main():
    • Lesen der Anzahl der Elemente
    • Eingabe der Arrayelemente
    • Sortieren des Arrays
    • Ausgabe des sortierten Arrays

Beispielkompilierung und Ausführung:

gcc -o array_sort array_sort.c
./array_sort

Beispielausgabe:

Geben Sie die Anzahl der Elemente ein (max 100): 5
Geben Sie 5 ganze Zahlen ein:
42 15 7 23 11
Sortiertes Array: 7 11 15 23 42

Wertebereich = Maximum - Minimum

In diesem Schritt lernen Sie, wie man den Wertebereich eines Datensatzes berechnet, indem man die Differenz zwischen dem maximalen und minimalen Wert im sortierten Array ermittelt.

Ändern wir das vorherige Programm, um den Wertebereich zu berechnen:

#include <stdio.h>

#define MAX_SIZE 100

// Funktion zum Vertauschen zweier Elemente
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Bubble-Sort-Funktion zum Sortieren des Arrays
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]);
            }
        }
    }
}

// Funktion zur Berechnung des Wertebereichs
int calculateRange(int arr[], int size) {
    // Wenn das Array leer ist, geben Sie 0 zurück
    if (size == 0) return 0;

    // Der Wertebereich ist die Differenz zwischen dem letzten (maximalen) und dem ersten (minimalen) Element
    return arr[size - 1] - arr[0];
}

int main() {
    int numbers[MAX_SIZE];
    int n;

    // Anzahl der Elemente einlesen
    printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
    scanf("%d", &n);

    // Arrayelemente eingeben
    printf("Geben Sie %d ganze Zahlen ein:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // Array sortieren
    sortArray(numbers, n);

    // Wertebereich berechnen und ausgeben
    int range = calculateRange(numbers, n);

    printf("Minimaler Wert: %d\n", numbers[0]);
    printf("Maximaler Wert: %d\n", numbers[n - 1]);
    printf("Wertebereich: %d\n", range);

    return 0;
}

Wichtige Änderungen in diesem Schritt:

  1. Hinzufügen der Funktion calculateRange() zur Berechnung des Wertebereichs
  2. Der Wertebereich wird berechnet, indem das erste (minimale) Element vom letzten (maximalen) Element im sortierten Array subtrahiert wird.
  3. Hinzufügen von Ausgabeaufrufen, um minimale, maximale und Wertebereichswerte anzuzeigen.

Beispielkompilierung und Ausführung:

gcc -o range_calculator range_calculator.c
./range_calculator

Beispielausgabe:

Geben Sie die Anzahl der Elemente ein (max 100): 5
Geben Sie 5 ganze Zahlen ein:
42 15 7 23 11
Minimaler Wert: 7
Maximaler Wert: 42
Wertebereich: 35

Der Wertebereich repräsentiert die Streuung des Datensatzes, berechnet durch Subtraktion des kleinsten Wertes vom größten Wert im sortierten Array.

Ausgabe des Wertebereichs

In diesem letzten Schritt lernen Sie, wie Sie die Ergebnisse der Wertebereichsberechnung benutzerfreundlich formatieren und anzeigen und dem Ergebnis einen statistischen Kontext hinzufügen.

Erstellen wir eine erweiterte Version unseres Wertebereichsberechnungsprogramms:

#include <stdio.h>

#define MAX_SIZE 100

// Funktion zum Vertauschen zweier Elemente
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

// Bubble-Sort-Funktion zum Sortieren des Arrays
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]);
            }
        }
    }
}

// Funktion zur Berechnung des Wertebereichs
int calculateRange(int arr[], int size) {
    // Wenn das Array leer ist, geben Sie 0 zurück
    if (size == 0) return 0;

    // Der Wertebereich ist die Differenz zwischen dem letzten (maximalen) und dem ersten (minimalen) Element
    return arr[size - 1] - arr[0];
}

// Funktion zum Drucken detaillierter Wertebereichsinformationen
void printRangeAnalysis(int arr[], int size, int range) {
    printf("\n--- Statistische Wertebereichsanalyse ---\n");
    printf("Datensatzgröße: %d\n", size);
    printf("Minimaler Wert: %d\n", arr[0]);
    printf("Maximaler Wert: %d\n", arr[size - 1]);
    printf("Wertebereich: %d\n", range);

    // Zusätzliche Einblicke
    printf("\nInterpretation:\n");
    printf("Der Wertebereich repräsentiert die Streuung der Werte im Datensatz.\n");
    printf("Ein größerer Wertebereich deutet auf mehr Variabilität in den Daten hin.\n");
}

int main() {
    int numbers[MAX_SIZE];
    int n;

    // Anzahl der Elemente einlesen
    printf("Geben Sie die Anzahl der Elemente ein (max %d): ", MAX_SIZE);
    scanf("%d", &n);

    // Arrayelemente eingeben
    printf("Geben Sie %d ganze Zahlen ein:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &numbers[i]);
    }

    // Array sortieren
    sortArray(numbers, n);

    // Wertebereich berechnen
    int range = calculateRange(numbers, n);

    // Detaillierte Wertebereichsanalyse ausgeben
    printRangeAnalysis(numbers, n, range);

    return 0;
}

Verbesserungen in diesem Schritt:

  1. Hinzufügen der Funktion printRangeAnalysis(), um eine umfassendere Ausgabe zu erzeugen.
  2. Hinzufügen von Kontextinformationen zum Wertebereich und zur Datenvariabilität.
  3. Formatierung der Ausgabe für mehr Übersichtlichkeit und Lesbarkeit.

Beispielkompilierung und Ausführung:

gcc -o range_analysis range_analysis.c
./range_analysis

Beispielausgabe:

Geben Sie die Anzahl der Elemente ein (max 100): 6
Geben Sie 6 ganze Zahlen ein:
10 25 7 42 15 33

--- Statistische Wertebereichsanalyse ---
Datensatzgröße: 6
Minimaler Wert: 7
Maximaler Wert: 42
Wertebereich: 35

Interpretation:
Der Wertebereich repräsentiert die Streuung der Werte im Datensatz.
Ein größerer Wertebereich deutet auf mehr Variabilität in den Daten hin.

Das Programm bietet nun einen umfassenderen Überblick über den Wertebereich des Datensatzes und hilft dem Benutzer, die statistische Bedeutung der Berechnung zu verstehen.

Zusammenfassung

In diesem Labor haben Sie zunächst gelernt, wie man ein Zahlenarray mithilfe eines einfachen Bubblesort-Algorithmus liest und sortiert. Dieser Schritt hat den Datensatz für die Berechnung des Wertebereichs vorbereitet. Als Nächstes lernen Sie, wie man den Wertebereich des Datensatzes ermittelt, indem man den Minimalwert vom Maximalwert im sortierten Array subtrahiert. Schließlich geben Sie den berechneten Wertebereich aus. Die wichtigsten Lernpunkte der abgeschlossenen Schritte sind das Lesen und Sortieren eines Arrays sowie das Konzept des Wertebereichs eines Datensatzes.