Введение
В этом лабораторном практикуме вы узнаете, как найти размах набора данных на языке программирования C. Практикум охватывает следующие шаги: 1) Чтение и сортировка массива, 2) Вычисление размаха путём нахождения разницы между максимальным и минимальным значениями и 3) Вывод размаха. Практикум предоставляет пошаговое руководство с примерами кода, чтобы помочь вам понять процесс анализа статистических свойств набора данных с использованием языка C.
Чтение и сортировка массива
В этом шаге вы узнаете, как считать массив чисел и отсортировать его для подготовки к вычислению размаха. Мы будем использовать простой подход для ввода и организации набора данных.
Сначала давайте создадим программу на C для чтения и сортировки массива:
#include <stdio.h>
#define MAX_SIZE 100
// Функция для обмена двумя элементами
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Функция сортировки массива методом пузырька
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;
// Ввод количества элементов
printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
scanf("%d", &n);
// Ввод элементов массива
printf("Введите %d целых чисел:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Сортировка массива
sortArray(numbers, n);
// Вывод отсортированного массива
printf("Отсортированный массив: ");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Давайте разберем ключевые компоненты:
- Мы определяем максимальный размер массива в 100 элементов.
- Функция
swap()помогает обменять два элемента массива. sortArray()использует сортировку пузырьком для упорядочивания элементов в порядке возрастания.- В
main():- Считывается количество элементов
- Вводятся элементы массива
- Сортируется массив
- Выводится отсортированный массив
Пример компиляции и выполнения:
gcc -o array_sort array_sort.c
./array_sort
Пример вывода:
Введите количество элементов (максимум 100): 5
Введите 5 целых чисел:
42 15 7 23 11
Отсортированный массив: 7 11 15 23 42
Размах = Макс - Мин
В этом шаге вы узнаете, как вычислить размах набора данных, найдя разницу между максимальным и минимальным значениями в отсортированном массиве.
Давайте изменим предыдущую программу для вычисления размаха:
#include <stdio.h>
#define MAX_SIZE 100
// Функция для обмена двумя элементами
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Функция сортировки массива методом пузырька
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 calculateRange(int arr[], int size) {
// Если массив пуст, вернуть 0
if (size == 0) return 0;
// Размах - это разность между последним (максимальным) и первым (минимальным) элементами
return arr[size - 1] - arr[0];
}
int main() {
int numbers[MAX_SIZE];
int n;
// Ввод количества элементов
printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
scanf("%d", &n);
// Ввод элементов массива
printf("Введите %d целых чисел:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Сортировка массива
sortArray(numbers, n);
// Вычисление и вывод размаха
int range = calculateRange(numbers, n);
printf("Минимальное значение: %d\n", numbers[0]);
printf("Максимальное значение: %d\n", numbers[n - 1]);
printf("Размах: %d\n", range);
return 0;
}
Ключевые изменения в этом шаге:
- Добавлена функция
calculateRange()для вычисления размаха. - Размах вычисляется путем вычитания первого (минимального) элемента из последнего (максимального) элемента в отсортированном массиве.
- Добавлено вывод минимального, максимального значений и размаха.
Пример компиляции и выполнения:
gcc -o range_calculator range_calculator.c
./range_calculator
Пример вывода:
Введите количество элементов (максимум 100): 5
Введите 5 целых чисел:
42 15 7 23 11
Минимальное значение: 7
Максимальное значение: 42
Размах: 35
Размах представляет собой разброс набора данных, вычисленный путем вычитания наименьшего значения из наибольшего значения в отсортированном массиве.
Вывод Размаха
В этом заключительном шаге вы узнаете, как отформатировать и отобразить результаты вычисления размаха удобным для пользователя способом, добавив статистический контекст в вывод.
Давайте создадим улучшенную версию нашей программы вычисления размаха:
#include <stdio.h>
#define MAX_SIZE 100
// Функция для обмена двумя элементами
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Функция сортировки массива методом пузырька
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 calculateRange(int arr[], int size) {
// Если массив пуст, вернуть 0
if (size == 0) return 0;
// Размах - это разность между последним (максимальным) и первым (минимальным) элементами
return arr[size - 1] - arr[0];
}
// Функция для вывода подробной информации о размахе
void printRangeAnalysis(int arr[], int size, int range) {
printf("\n--- Статистический анализ размаха ---\n");
printf("Размер набора данных: %d\n", size);
printf("Минимальное значение: %d\n", arr[0]);
printf("Максимальное значение: %d\n", arr[size - 1]);
printf("Размах: %d\n", range);
// Дополнительные сведения
printf("\nИнтерпретация:\n");
printf("Размах представляет собой разброс значений в наборе данных.\n");
printf("Больший размах указывает на большую изменчивость данных.\n");
}
int main() {
int numbers[MAX_SIZE];
int n;
// Ввод количества элементов
printf("Введите количество элементов (максимум %d): ", MAX_SIZE);
scanf("%d", &n);
// Ввод элементов массива
printf("Введите %d целых чисел:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Сортировка массива
sortArray(numbers, n);
// Вычисление размаха
int range = calculateRange(numbers, n);
// Вывод подробного анализа размаха
printRangeAnalysis(numbers, n, range);
return 0;
}
Ключевые улучшения в этом шаге:
- Добавлена функция
printRangeAnalysis()для предоставления исчерпывающего вывода. - Включен дополнительный контекст о размахе и изменчивости данных.
- Формат вывода стал более информативным и удобочитаемым.
Пример компиляции и выполнения:
gcc -o range_analysis range_analysis.c
./range_analysis
Пример вывода:
Введите количество элементов (максимум 100): 6
Введите 6 целых чисел:
10 25 7 42 15 33
--- Статистический анализ размаха ---
Размер набора данных: 6
Минимальное значение: 7
Максимальное значение: 42
Размах: 35
Интерпретация:
Размах представляет собой разброс значений в наборе данных.
Больший размах указывает на большую изменчивость данных.
Программа теперь предоставляет более полное представление о размахе набора данных, помогая пользователям понять статистическое значение вычисления.
Резюме
В этом лабораторном практикуме вы сначала изучили, как читать и сортировать массив чисел с помощью простого алгоритма сортировки пузырьком. Этот шаг подготовил набор данных для вычисления размаха. Далее вы узнаете, как найти размах набора данных, вычитая минимальное значение из максимального значения в отсортированном массиве. Наконец, вы выведете вычисленный размах. Ключевыми моментами, изученными в завершенных шагах, являются чтение и сортировка массива, а также понятие размаха набора данных.



