AT = nro_maior - nro_menor;
K = ceil(1+3.3*log10(TAM_MAX));
h = round(AT/K);
printf("Resultados\n\n");
imprimirRol(vet);
printf("limite inferior li: %.2f \n", nro_menor);
printf("limite superior Li: %.2f \n", nro_maior);
printf("Amplitude total AT: %.2f \n", AT);
printf("Número total de Classes K: %.2f \n", K);
printf("Incremento de classe h: %.2f \n\n", h);
lim1=vet[0];
lim2=h+lim1;
printf("Tabela de Distribuição\n");
printf("Idade da familia Oliveira\n");
printf("-----------------+-----------+-----------+-----------+------------\n");
printf(" idade | fi | xi | fac | fpi \n");
printf("-----------------+-----------+-----------+-----------+------------\n");
acum=0;
for(i=0; i != K; i++){
cont=0;
for (j=0; j != 10; j++){
if( vet[j] >= lim1 && vet[j] < lim2){
cont++;
}
}
acum = acum + cont;
soma = soma + cont;
Pergunta
Sir John Doe
Nunca programei em nada na vida, sou estudante de pscologia e cansado de fazer tabela de distribuicao, fiz esse programa que so funcionou com um rol.
Creio que seja por desconhecer como faz calculo com os categorias de variareis float, double, string.
Alguém pode me ajudar?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define TAM_MAX 10
void imprimirRol( double vetor[TAM_MAX]){
int i;
printf("Rol:");
for(i=0; i!=TAM_MAX; i++){
printf("%5.2f,", vetor[i] );
}
printf("\n");
}
float menor(double tam, double vetor[TAM_MAX]){
int i;
double menor = 9999999;
for(i=0; i!=tam; i++){
if(vetor[i] < menor){
menor=vetor[i];
}
}
return menor;
}
float maior(double tam, double vetor[TAM_MAX]){
int i;
double maior;
for(i=0; i!=tam; i++){
if(vetor[i] > maior){
maior=vetor[i];
}
}
return maior;
}
double pontoMedio(double a, double b){
return (a+b)/2;
}
double percentualFrequencia(int contador){
return 100*contador/TAM_MAX;
}
int main(){
int i,j,cont=0,acum, tam;
double soma, somaPercentual=0, percentualClasse;
double nro_menor, nro_maior, AT, h, K,lim1, lim2;
double vet[TAM_MAX] = {1,4,24,25,30,33,39,46,57,60};
soma=0;
nro_menor = menor(TAM_MAX, vet);
nro_maior = maior(TAM_MAX, vet);
AT = nro_maior - nro_menor;
K = ceil(1+3.3*log10(TAM_MAX));
h = round(AT/K);
printf("Resultados\n\n");
imprimirRol(vet);
printf("limite inferior li: %.2f \n", nro_menor);
printf("limite superior Li: %.2f \n", nro_maior);
printf("Amplitude total AT: %.2f \n", AT);
printf("Número total de Classes K: %.2f \n", K);
printf("Incremento de classe h: %.2f \n\n", h);
lim1=vet[0];
lim2=h+lim1;
printf("Tabela de Distribuição\n");
printf("Idade da familia Oliveira\n");
printf("-----------------+-----------+-----------+-----------+------------\n");
printf(" idade | fi | xi | fac | fpi \n");
printf("-----------------+-----------+-----------+-----------+------------\n");
acum=0;
for(i=0; i != K; i++){
cont=0;
for (j=0; j != 10; j++){
if( vet[j] >= lim1 && vet[j] < lim2){
cont++;
}
}
acum = acum + cont;
soma = soma + cont;
percentualClasse = percentualFrequencia(cont);
somaPercentual = somaPercentual + percentualClasse;
printf("%3.0f |= %3.0f | %3d | %5.2f | %3d | %5.2f%% \n", lim1, lim2, cont, pontoMedio(lim1,lim2), acum, percentualClasse) ;
lim1=lim2;
lim2=lim2+h;
percentualFrequencia(cont);
}
printf("-----------------+-----------+-----------+-----------+------------\n");
printf(" | %3.0f | | | %5.2f%% \n", soma, somaPercentual);
printf("-----------------+-----------+-----------+-----------+------------\n");
printf("Fonte: aula prof. Geraldo Magela 24/03/2022\n");
tente com esse rol:
double vet[TAM_MAX] = {1,3,18,26,28,31,33,39,46,57,60};
altere a constante #define TAM_MAX 11
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.