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:
- Adicionámos uma nova função
calculateStandardDeviation.
- Esta função utiliza
sqrt() da biblioteca matemática para calcular o desvio padrão.
- O desvio padrão é a raiz quadrada da variância.
- A função principal agora imprime as três medidas estatísticas.
- Continuamos a usar a flag
-lm para ligar a biblioteca matemática.