Cálculo do Desvio Padrão em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderá a calcular o desvio padrão de um conjunto de dados em programação C. O laboratório cobre três etapas principais: calcular a média do conjunto de dados, somar os desvios quadrados da média para calcular a variância e, em seguida, calcular a raiz quadrada para obter o desvio padrão. No final deste laboratório, terá uma compreensão sólida destes conceitos estatísticos fundamentais e como implementá-los em C.

O laboratório fornece instruções passo a passo e código de exemplo para guiá-lo através do processo. Começará escrevendo um programa C para calcular a média de um conjunto de dados dado, depois estenderá o programa para calcular a variância somando os desvios quadrados da média. Finalmente, calculará a raiz quadrada da variância para determinar o desvio padrão e imprimirá o resultado.

Calcular a Média do Conjunto de Dados

Nesta etapa, aprenderá a calcular a média de um conjunto de dados em programação C. A média é uma medida estatística fundamental que representa o valor médio de um conjunto de números.

Primeiro, vamos criar um programa C para calcular a média de um conjunto de dados. Abra um novo ficheiro usando o nano:

cd ~/project
nano mean_calculation.c

Agora, insira o seguinte código:

#include <stdio.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Introduza o número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Introduza %d inteiros:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    printf("Média do conjunto de dados: %.2f\n", mean);

    return 0;
}

Compile o programa:

gcc mean_calculation.c -o mean_calculation

Execute o programa e introduza alguns dados de exemplo:

./mean_calculation

Exemplo de saída:

Introduza o número de elementos (máximo 100): 5
Introduza 5 inteiros:
10
20
30
40
50
Média do conjunto de dados: 30.00

Vamos decompor o código:

  1. Definimos uma função calculateMean que recebe um array e o seu tamanho como parâmetros.
  2. A função calcula a soma de todos os elementos do array.
  3. A média é calculada dividindo a soma pelo número total de elementos.
  4. Na função main, solicitamos ao utilizador que introduza o conjunto de dados.
  5. Chamamos calculateMean e imprimimos o resultado com duas casas decimais.

Somar os Desvios Quadrados e Calcular a Variância

Nesta etapa, irá estender o programa anterior para calcular a variância, somando os desvios quadrados da média. A variância mede o quão dispersos estão os números num conjunto de dados.

Abra o ficheiro anterior para modificar:

cd ~/project
nano mean_calculation.c

Atualize o programa com o cálculo da variância:

#include <stdio.h>
#include <math.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

float calculateVariance(int arr[], int size, float mean) {
    float sumSquaredDeviations = 0;
    for (int i = 0; i < size; i++) {
        float deviation = arr[i] - mean;
        sumSquaredDeviations += deviation * deviation;
    }
    return sumSquaredDeviations / size;
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Introduza o número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Introduza %d inteiros:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    float variance = calculateVariance(dataset, size, mean);

    printf("Média do conjunto de dados: %.2f\n", mean);
    printf("Variância do conjunto de dados: %.2f\n", variance);

    return 0;
}

Compile o programa atualizado:

gcc mean_calculation.c -o mean_calculation -lm

Execute o programa e introduza dados de exemplo:

./mean_calculation

Exemplo de saída:

Introduza o número de elementos (máximo 100): 5
Introduza 5 inteiros:
10
20
30
40
50
Média do conjunto de dados: 30.00
Variância do conjunto de dados: 200.00

Pontos chave no código:

  1. Adicionámos uma nova função calculateVariance que recebe o array, o tamanho e a média.
  2. A função calcula o desvio de cada elemento em relação à média.
  3. Ele eleva estes desvios ao quadrado e soma-os.
  4. A variância é calculada dividindo a soma dos desvios quadrados pelo número de elementos.
  5. Usamos a flag -lm ao compilar para ligar a biblioteca matemática.

Extrair a Raiz Quadrada para o Desvio Padrão e Imprimir

Nesta etapa final, irá completar o cálculo do desvio padrão extraindo a raiz quadrada da variância. O desvio padrão é uma medida fundamental da dispersão de dados na análise estatística.

Abra o ficheiro anterior para modificar:

cd ~/project
nano mean_calculation.c

Atualize o programa com o cálculo do desvio padrão:

#include <stdio.h>
#include <math.h>

#define MAX_SIZE 100

float calculateMean(int arr[], int size) {
    float sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum / size;
}

float calculateVariance(int arr[], int size, float mean) {
    float sumSquaredDeviations = 0;
    for (int i = 0; i < size; i++) {
        float deviation = arr[i] - mean;
        sumSquaredDeviations += deviation * deviation;
    }
    return sumSquaredDeviations / size;
}

float calculateStandardDeviation(float variance) {
    return sqrt(variance);
}

int main() {
    int dataset[MAX_SIZE];
    int size;

    printf("Introduza o número de elementos (máximo %d): ", MAX_SIZE);
    scanf("%d", &size);

    printf("Introduza %d inteiros:\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &dataset[i]);
    }

    float mean = calculateMean(dataset, size);
    float variance = calculateVariance(dataset, size, mean);
    float standardDeviation = calculateStandardDeviation(variance);

    printf("Estatísticas do Conjunto de Dados:\n");
    printf("Média: %.2f\n", mean);
    printf("Variância: %.2f\n", variance);
    printf("Desvio Padrão: %.2f\n", standardDeviation);

    return 0;
}

Compile o programa atualizado:

gcc mean_calculation.c -o mean_calculation -lm

Execute o programa e introduza dados de exemplo:

./mean_calculation

Exemplo de saída:

Introduza o número de elementos (máximo 100): 5
Introduza 5 inteiros:
10
20
30
40
50
Estatísticas do Conjunto de Dados:
Média: 30.00
Variância: 200.00
Desvio Padrão: 14.14

Pontos chave no código:

  1. Adicionámos uma nova função calculateStandardDeviation.
  2. Esta função utiliza sqrt() da biblioteca matemática para calcular o desvio padrão.
  3. O desvio padrão é a raiz quadrada da variância.
  4. A função principal agora imprime as três medidas estatísticas.
  5. Continuamos a usar a flag -lm para ligar a biblioteca matemática.

Resumo

Neste laboratório, aprendeu primeiro a calcular a média de um conjunto de dados em programação C. A média é uma medida estatística fundamental que representa o valor médio de um conjunto de números. Em seguida, estendeu o programa para calcular a variância somando os desvios quadrados da média. A variância mede o quão dispersos estão os números num conjunto de dados. Finalmente, aprendeu a extrair a raiz quadrada da variância para calcular o desvio padrão e imprimir o resultado.