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:
- Wir definieren eine maximale Arraygröße von 100 Elementen.
- Die Funktion
swap()hilft beim Vertauschen zweier Arrayelemente. sortArray()verwendet den Bubblesort-Algorithmus, um die Elemente in aufsteigender Reihenfolge anzuordnen.- 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:
- Hinzufügen der Funktion
calculateRange()zur Berechnung des Wertebereichs - Der Wertebereich wird berechnet, indem das erste (minimale) Element vom letzten (maximalen) Element im sortierten Array subtrahiert wird.
- 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:
- Hinzufügen der Funktion
printRangeAnalysis(), um eine umfassendere Ausgabe zu erzeugen. - Hinzufügen von Kontextinformationen zum Wertebereich und zur Datenvariabilität.
- 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.



