Buscar

Grupo Numérico - Letra D

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);
 }
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais recentes

Perguntas Recentes