>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

Como criar um histograma usando código de programação C


Os histogramas são comumente encontrados como uma opção de gráfico na análise de dados em software de planilha e em software de edição de imagem para mostrar a distribuição de tons de preto a branco em uma imagem. Na linguagem de programação C, usar uma matriz para manter a contagem de frequência simplifica a criação de um histograma de seu conjunto de dados. Embora os conjuntos de dados usados ​​para criar histogramas geralmente contenham valores inteiros, caracteres e até strings podem ser contados e representados graficamente.

Etapa 1


Preencha uma matriz inteira chamada "values" com seu conjunto de dados e defina a variável "numvalues" para o número de valores em seu conjunto de dados. Eles podem ser gerados aleatoriamente, lidos de um arquivo ou coletados interativamente do usuário. Este exemplo inicializa essas variáveis ​​quando são declaradas:

int numvalor =20; int valores[numvalores] ={ -3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };

Etapa 2


Configure duas variáveis ​​inteiras (i e j) para usar como iteradores:

int i =0, j =0;

Etapa 3


Itere através de seus dados -- a matriz de valores -- e defina a variável "maxval" para o valor máximo de seus dados:

int maxval =0; for (i=0; i maxval) maxval =valores[i] }

Etapa 4


Percorra seus dados e defina a variável "minval" para o valor máximo de seus dados:

int minval =maxval; for (i=0; i

Etapa 5


Declare uma variável "freqsize" para conter o tamanho do seu array de frequência:

int freqsize =maxval - minval + 1;

Etapa 6


Declare um array para manter as contagens de frequência e inicialize cada elemento do array para zero:

int frequência[freqsize]; for (i=0; i
Há um elemento de matriz para cada valor possível em seu conjunto de dados.

Etapa 7


Percorra cada valor em seu conjunto de dados, adicionando um ao elemento da matriz de frequência correspondente a esse valor:

for (i =0; i
O índice correspondente ao valor atual é gerado deslocando o valor pelo valor mínimo.

Etapa 8


Percorra cada elemento na matriz de frequência. Imprima o valor atual (calculado deslocando o iterador "i" pelo valor mínimo). Imprima o número de estrelas (*) correspondente à frequência do valor atual fazendo um loop de um para o valor armazenado na matriz de frequência, imprimindo uma única estrela a cada vez:

for (i=1; i<=tamanho freq; i++) { printf("%2d\t|", i + minval); for(j=0; j