Introdução
Neste laboratório, você aprenderá a encontrar o intervalo de um conjunto de dados em programação C. O laboratório cobre os seguintes passos: 1) Ler e ordenar o array, 2) Calcular o intervalo encontrando a diferença entre os valores máximo e mínimo, e 3) Imprimir o intervalo. O laboratório fornece um guia passo a passo com código de exemplo para ajudá-lo a compreender o processo de análise de propriedades estatísticas de um conjunto de dados usando C.
Ler e Ordenar o Array
Neste passo, você aprenderá como ler um array de números e ordená-lo para se preparar para calcular o intervalo. Usaremos uma abordagem simples para a entrada e organização dos dados.
Primeiro, vamos criar um programa C para ler e ordenar um array:
#include <stdio.h>
#define MAX_SIZE 100
// Função para trocar dois elementos
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Função de ordenação por bolha para ordenar o array
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;
// Ler o número de elementos
printf("Digite o número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Entrada dos elementos do array
printf("Digite %d inteiros:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Ordenar o array
sortArray(numbers, n);
// Imprimir o array ordenado
printf("Array ordenado: ");
for (int i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Vamos decompor os componentes-chave:
- Definimos um tamanho máximo de array de 100 elementos.
- A função
swap()ajuda a trocar dois elementos do array. sortArray()usa a ordenação por bolha para organizar os elementos em ordem crescente.- Em
main(), fazemos o seguinte:- Ler o número de elementos
- Ler os elementos do array
- Ordenar o array
- Imprimir o array ordenado
Exemplo de compilação e execução:
gcc -o array_sort array_sort.c
./array_sort
Exemplo de saída:
Digite o número de elementos (máximo 100): 5
Digite 5 inteiros:
42 15 7 23 11
Array ordenado: 7 11 15 23 42
Range = Máximo - Mínimo
Neste passo, você aprenderá a calcular o intervalo de um conjunto de dados encontrando a diferença entre os valores máximo e mínimo no array ordenado.
Vamos modificar o programa anterior para calcular o intervalo:
#include <stdio.h>
#define MAX_SIZE 100
// Função para trocar dois elementos
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Função de ordenação por bolha para ordenar o array
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]);
}
}
}
}
// Função para calcular o intervalo
int calculateRange(int arr[], int size) {
// Se o array estiver vazio, retorna 0
if (size == 0) return 0;
// O intervalo é a diferença entre o último (máximo) e o primeiro (mínimo) elementos
return arr[size - 1] - arr[0];
}
int main() {
int numbers[MAX_SIZE];
int n;
// Ler o número de elementos
printf("Digite o número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Entrada dos elementos do array
printf("Digite %d inteiros:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Ordenar o array
sortArray(numbers, n);
// Calcular e imprimir o intervalo
int range = calculateRange(numbers, n);
printf("Valor mínimo: %d\n", numbers[0]);
printf("Valor máximo: %d\n", numbers[n - 1]);
printf("Intervalo: %d\n", range);
return 0;
}
Modificações-chave neste passo:
- Adicionada a função
calculateRange()para calcular o intervalo - O intervalo é calculado subtraindo o primeiro (mínimo) elemento do último (máximo) elemento no array ordenado
- Adicionadas instruções de impressão para mostrar os valores mínimo, máximo e do intervalo
Exemplo de compilação e execução:
gcc -o range_calculator range_calculator.c
./range_calculator
Exemplo de saída:
Digite o número de elementos (máximo 100): 5
Digite 5 inteiros:
42 15 7 23 11
Valor mínimo: 7
Valor máximo: 42
Intervalo: 35
O intervalo representa a amplitude do conjunto de dados, calculado subtraindo o menor valor do maior valor no array ordenado.
Imprimir o Intervalo
Neste passo final, você aprenderá a formatar e exibir os resultados do cálculo do intervalo de forma amigável ao usuário, adicionando algum contexto estatístico à saída.
Vamos criar uma versão aprimorada do nosso programa de cálculo de intervalo:
#include <stdio.h>
#define MAX_SIZE 100
// Função para trocar dois elementos
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Função de ordenação por bolha para ordenar o array
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]);
}
}
}
}
// Função para calcular o intervalo
int calculateRange(int arr[], int size) {
// Se o array estiver vazio, retorna 0
if (size == 0) return 0;
// O intervalo é a diferença entre o último (máximo) e o primeiro (mínimo) elementos
return arr[size - 1] - arr[0];
}
// Função para imprimir informações detalhadas sobre o intervalo
void printRangeAnalysis(int arr[], int size, int range) {
printf("\n--- Análise Estatística do Intervalo ---\n");
printf("Tamanho do Conjunto de Dados: %d\n", size);
printf("Valor Mínimo: %d\n", arr[0]);
printf("Valor Máximo: %d\n", arr[size - 1]);
printf("Intervalo: %d\n", range);
// Informações adicionais
printf("\nInterpretação:\n");
printf("O intervalo representa a dispersão dos valores no conjunto de dados.\n");
printf("Um intervalo maior indica mais variabilidade nos dados.\n");
}
int main() {
int numbers[MAX_SIZE];
int n;
// Ler o número de elementos
printf("Digite o número de elementos (máximo %d): ", MAX_SIZE);
scanf("%d", &n);
// Entrada dos elementos do array
printf("Digite %d inteiros:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Ordenar o array
sortArray(numbers, n);
// Calcular o intervalo
int range = calculateRange(numbers, n);
// Imprimir análise detalhada do intervalo
printRangeAnalysis(numbers, n, range);
return 0;
}
Melhorias-chave neste passo:
- Adicionada a função
printRangeAnalysis()para fornecer uma saída abrangente - Incluído contexto adicional sobre o intervalo e a variabilidade dos dados
- Formatado a saída para ser mais informativa e legível
Exemplo de compilação e execução:
gcc -o range_analysis range_analysis.c
./range_analysis
Exemplo de saída:
Digite o número de elementos (máximo 100): 6
Digite 6 inteiros:
10 25 7 42 15 33
--- Análise Estatística do Intervalo ---
Tamanho do Conjunto de Dados: 6
Valor Mínimo: 7
Valor Máximo: 42
Intervalo: 35
Interpretação:
O intervalo representa a dispersão dos valores no conjunto de dados.
Um intervalo maior indica mais variabilidade nos dados.
O programa agora fornece uma visão mais abrangente do intervalo do conjunto de dados, ajudando os usuários a entender a significância estatística do cálculo.
Resumo
Neste laboratório, você aprendeu inicialmente a ler e ordenar um array de números usando um algoritmo de ordenação por bolhas simples. Esta etapa preparou o conjunto de dados para o cálculo do intervalo. Em seguida, você aprenderá a encontrar o intervalo do conjunto de dados subtraindo o valor mínimo do valor máximo no array ordenado. Finalmente, você imprimirá o intervalo calculado. Os pontos-chave de aprendizado das etapas concluídas são a leitura e ordenação de um array, bem como o conceito de intervalo de um conjunto de dados.



