Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include<stdio.h> #include<stdlib.h> #include<math.h> void correlacao(float*, float*, int);//Função int main(){ printf("Definicao de relacao entre variaveis.\n\n"); //Titulo float *H, *F; //Ponteiros que assumirao os dados colhidos - H = Média do 2º Grau, F = Média do 1º ano universitário int N; //Numero de dados colhidos de cada tipo(definir o número de alunos) int a=0; //Contador while(a==0){ printf("Quantos alunos serao analisados? "); scanf("%d",&N);//Leitura de N H = (float*)malloc(N*sizeof(float)); /*Locação de memoria - ALOCA 'N' NÚMEROS DE PONTO FLUTUANTE. ASSIM 'H' PODE AGORA SER TRATADO COM UM VETOR COM 'N' POSIÇÕES*/ F = (float*)malloc(N*sizeof(float)); /*Locação de memoria - ALOCA 'N' NÚMEROS DE PONTO FLUTUANTE. ASSIM 'F' PODE AGORA SER TRATADO COM UM VETOR COM 'N' POSIÇÕES*/ if(!H || !F){//Teste para locação printf("Memoria insuficiente.\n");//Caso nao seja criado um vetor, realocar com um numero menor free(H); //Libera memoria para realocar free(F); //Libera memoria para realocar } else{ printf("Memoria alocada com sucesso.\n\n");//Caso um vetor for criado, memoria locada a=1;//inicialmente 'a=0' alocando memória recebe 1 }//fim do MEMÓRIA ALOCADA COM SUCESSO }//FIM DO WHILE - FIM DA ALOCAÇÃO DINÂMICA for(a=0; a<N; a++){ /*Leitura dos dos dados - o termo de parada é o número de alunos*/ printf("\nMedia do 2o Grau - Aluno %d: ",a+1); //Ler 1o Dado scanf("%f",&H[a]); printf("Media do 1o ano de faculdade - Aluno %d: ",a+1); //Ler 2o Dado scanf("%f",&F[a]); } correlacao(H, F, N); //Chamando funcao correlação free(H); //Liberar memoria no fim do programa free(F); //Liberar memoria no fim do programa system("PAUSE>NULL"); return 0; } void correlacao(float *H, float *F, int N){ //Recebe os dados de doi ponteiros, os quais permitirao o acesso aos vetore H e F //Recebe o numero de dados N float hf=0, h=0, f=0, hh=0, ff=0; float r, b, c; //Variaveis para calculo int a; //Contador //Somatoria de H*F, de 1 a N for(a=0; a<N; a++) hf+=H[a]*F[a]; //Somatoria de H, de 1 a N for(a=0; a<N; a++) h+=H[a]; //Somatoria de F, de 1 a N for(a=0; a<N; a++) f+=F[a]; //Somatoria de H*H, de 1 a N for(a=0; a<N; a++) hh+=H[a]*H[a]; //Somatoria de F*F, de 1 a N for(a=0; a<N; a++) ff+=F[a]*F[a]; b = N*hf - h*f; //Dividendo c = (N*hh - h*h)*(N*ff - f*f); //Divisor r = b/sqrt(c); //Coeficiente de correlacao if(c==0){ //Caso o quociente seja nao real printf("dividendo = %f\ndivisor = %f\n", b, c); printf("hf = %f\nh = %f\nf = %f\nhh = %f\nff = %f\n", hf, h, f, hh, ff); printf("Calculo nao real."); } else{ //Exibir resultado printf("dividendo = %f\ndivisor = %f\n", b, c); printf("hf = %f\nh = %f\nf = %f\nhh = %f\nff = %f\n", hf, h, f, hh, ff); printf("\n\nO coeficiente de correlacao entre as variaveis e: %.3f",r); } }
Compartilhar