Introdução
Neste laboratório, você aprenderá a determinar a moda de um conjunto de dados em C. O laboratório cobre os seguintes passos:
Leitura do Array de Números: Você aprenderá como ler um array de números em C, que é o primeiro passo crucial na determinação da moda de um conjunto de dados. O programa permite a entrada de um conjunto de números e os prepara para a análise de frequência.
Contagem de Frequências para Encontrar o Valor Mais Comum: Você modificará o programa anterior para contar as frequências de cada número no array e identificar o valor mais comum (moda).
Impressão da Moda: Finalmente, você imprimirá a moda, que é o valor que aparece com maior frequência no conjunto de dados.
Leitura do Array de Números
Neste passo, você aprenderá a ler um array de números em C, que é o primeiro passo crucial na determinação da moda de um conjunto de dados. Criaremos um programa C que permite a entrada de um conjunto de números e os prepara para a análise de frequência.
Primeiro, vamos criar um novo arquivo C para nosso programa de cálculo da moda:
cd ~/project
nano mode_calculation.c
Agora, adicione o seguinte código ao arquivo:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int n, i;
// Entrada do 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 (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Imprime o array inserido para verificar a entrada
printf("Array inserido: ");
for (i = 0; i < n; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
Compile e execute o programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Exemplo de saída:
Digite o número de elementos (máximo 100): 5
Digite 5 inteiros:
3 4 2 4 1
Array inserido: 3 4 2 4 1
Vamos analisar as partes principais deste código:
#define MAX_SIZE 100define um limite máximo para o array para evitar estouro.scanf()é usado para inserir o número de elementos e os valores do array.- Imprimimos o array para verificar se a entrada foi capturada corretamente.
O código demonstra a entrada básica de arrays em C, essencial para o nosso processo de cálculo da moda. Nos próximos passos, construiremos sobre isso para contar frequências e determinar a moda.
Contagem de Frequências para Encontrar o Valor Mais Comum
Neste passo, modificaremos nosso programa anterior para contar as frequências de cada número no array e identificar o valor mais comum (moda).
Abra o arquivo existente e atualize o código:
cd ~/project
nano mode_calculation.c
Substitua o código anterior pela seguinte implementação:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int n, i, j, mode = 0, max_frequency = 0;
// Entrada do 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 (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Contagem de frequências de cada número
for (i = 0; i < n; i++) {
int count = 1;
for (j = 0; j < n; j++) {
if (i != j && numbers[i] == numbers[j]) {
count++;
}
}
frequencies[i] = count;
// Rastreamento da moda
if (count > max_frequency) {
max_frequency = count;
mode = numbers[i];
}
}
// Impressão das frequências
printf("\nFrequências:\n");
for (i = 0; i < n; i++) {
printf("Número %d aparece %d vez(es)\n", numbers[i], frequencies[i]);
}
// Impressão da moda
printf("\nModa: %d (aparece %d vezes)\n", mode, max_frequency);
return 0;
}
Compile e execute o programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Exemplo de saída:
Digite o número de elementos (máximo 100): 6
Digite 6 inteiros:
2 3 4 2 2 5
Frequências:
2 aparece 3 vez(es)
3 aparece 1 vez(es)
4 aparece 1 vez(es)
2 aparece 3 vez(es)
2 aparece 3 vez(es)
5 aparece 1 vez(es)
Moda: 2 (aparece 3 vezes)
Pontos-chave desta implementação:
- Criamos um array
frequenciespara armazenar a contagem de cada número. - Loops aninhados contam as ocorrências de cada número único.
- Rastreamos a moda mantendo o controle da frequência máxima.
- O programa lida com casos com uma única moda.
Impressão da Moda
Neste passo final, aprimoraremos nosso programa de cálculo da moda para lidar com múltiplas modas e fornecer uma saída mais abrangente de informações estatísticas.
Abra o arquivo existente e atualize o código:
cd ~/project
nano mode_calculation.c
Substitua o código anterior pela seguinte implementação:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int numbers[MAX_SIZE];
int frequencies[MAX_SIZE] = {0};
int unique_numbers[MAX_SIZE];
int n, i, j, unique_count = 0, max_frequency = 0;
// Entrada do 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 (i = 0; i < n; i++) {
scanf("%d", &numbers[i]);
}
// Encontrar números únicos e suas frequências
for (i = 0; i < n; i++) {
int is_unique = 1;
for (j = 0; j < unique_count; j++) {
if (numbers[i] == unique_numbers[j]) {
is_unique = 0;
break;
}
}
if (is_unique) {
unique_numbers[unique_count] = numbers[i];
// Contar a frequência deste número único
int count = 0;
for (j = 0; j < n; j++) {
if (numbers[i] == numbers[j]) {
count++;
}
}
frequencies[unique_count] = count;
// Atualizar a frequência máxima
if (count > max_frequency) {
max_frequency = count;
}
unique_count++;
}
}
// Imprimir informações detalhadas da moda
printf("\nAnálise Estatística:\n");
printf("Números Totais: %d\n", n);
printf("Números Únicos: %d\n", unique_count);
printf("\nDistribuição de Frequências:\n");
for (i = 0; i < unique_count; i++) {
printf("Número %d: %d vez(es)\n",
unique_numbers[i], frequencies[i]);
}
// Imprimir as modas
printf("\nModa(s):\n");
for (i = 0; i < unique_count; i++) {
if (frequencies[i] == max_frequency) {
printf("- %d (aparece %d vez(es))\n",
unique_numbers[i], frequencies[i]);
}
}
return 0;
}
Compile e execute o programa:
gcc mode_calculation.c -o mode_calculation
./mode_calculation
Exemplo de saída:
Digite o número de elementos (máximo 100): 7
Digite 7 inteiros:
2 3 4 2 2 5 5
Análise Estatística:
Números Totais: 7
Números Únicos: 4
Distribuição de Frequências:
Número 2: 3 vez(es)
Número 3: 1 vez(es)
Número 4: 1 vez(es)
Número 5: 2 vez(es)
Moda(s):
- 2 (aparece 3 vezes)
Melhorias-chave nesta versão:
- Lidar com múltiplas modas, se existirem.
- Fornecer uma visão estatística abrangente.
- Identificar números únicos no conjunto de dados.
- Exibir a distribuição de frequências.
Resumo
Neste laboratório, você aprenderá como ler um array de números em C e contar as frequências de cada número para determinar a moda, que é o valor mais comum no conjunto de dados. Primeiro, você criará um programa em C que permite a entrada de um conjunto de números e os prepara para a análise de frequência. Em seguida, você modificará o programa para contar as frequências de cada número e identificar a moda. Finalmente, você imprimirá a moda no console.
Os principais pontos de aprendizado das etapas concluídas são:
- Como ler um array de números em C usando a função
scanf(). - Como imprimir o array inserido para verificar a entrada.
- Como contar as frequências de cada número no array para encontrar o valor mais comum (moda).



