Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Examen1/Examen 1 TDA Juan Carlos Garcia.pdf
Binary file not shown.
29 changes: 29 additions & 0 deletions Examen1/files.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//
// template.c
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#include "main.h"
#include "procesos.h"
#include "files.h"

void imprimirRes(float mediana,float media,int mod,float stDev,float Rang,float DistInt,FILE * arch2){
fprintf(arch2, "mediana: , %f\n",mediana);
fprintf(arch2, "media: , %f\n",media);
fprintf(arch2, "moda: , %d\n",mod );
fprintf(arch2, "Desviacion Estandar: , %f\n",mediana );
fprintf(arch2, "Rango: , %f\n",Rang );
fprintf(arch2, "Distancia intercuartíl: , %f\n",DistInt );
}

void imprimirHist(float arr[],FILE * arch3){
int cont;

for(cont = 0; cont < 50; cont ++){
fprintf(arch3,"%d ,%d\n",cont, (int)arr[cont]);
}


}
49 changes: 49 additions & 0 deletions Examen1/files.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//
// template.h
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#ifndef files_h
#define files_h

#include <stdio.h>
#include <stdlib.h>

#ifndef files_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif

/*
* @function
* imprimirRes- manda los datos procesados a un .csv
* @params
* mediana- la mediana de los datos
* media- la media de los datos (promedio)
* mod- la moda de los datos
* stDev- la desviacion estandar de los datos
* Rang- el rango de los datos
* DistInt- la distancia intercuartíl de los datos
* arch2- archivo a donde van los datos
* @return
* N/A
*/
EXTERN void imprimirRes(float mediana,float media,int mod,float stDev,float Rang,float DistInt,FILE * arch2);



/*
* @function
* imprimirHist- manda los datos a un .csv para conseguir el histograma
* @params
* arr[]- arreglo con los datos
* arch3- el archivo a donde se va a imprimir
* @return
* N/A
*/
EXTERN void imprimirHist(float arr[],FILE * arch3);

#endif /* files_h */
51 changes: 51 additions & 0 deletions Examen1/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//
// template.c
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#include "main.h"
#include "procesos.h"
#include "files.h"

int main(void){
FILE * arch1, * arch2, * arch3;
int cont = 0,i,j, mod;
float temporario, media, mediana, stDev, Rang, DistInt; /*Declaración de variables*/
float *arr = malloc(50 * sizeof(float));

arch1 = fopen("data1.csv", "r");
arch2 = fopen("dataStatistic.csv", "w"); /*Definicion de archivos*/
arch3 = fopen("Histograma.csv", "w");

for(cont = 0; cont < 50; cont ++){
fscanf(arch1, "%f, %f", &arr[cont], &arr[cont]); /*Extraer datos de data1.csv */
}

for(i = 0; i < 49; i++){ /*Ordenar el array*/
for(j = 0; j < 49 - i; j++){
if(arr[j]> arr[j+1]){
temporario = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temporario;
}//end if
}//end for (j)
}//end for (i)

mediana = median( arr); /*conseguir la mediana*/
media = mean( arr); /*conseguir la media*/
mod = mode(arr); /*conseguir la moda*/

stDev = stdev(arr,media); /*conseguir la desviación estandar*/
Rang = range(arr); /*conseguir el rango*/
DistInt = IQR(arr); /*conseguir la distancia intercuartíl*/

imprimirRes(mediana,media,mod,stDev,Rang,DistInt,arch2); /*imprimir los datos a archivos csv*/
imprimirHist(arr,arch3);

free(arr);
fclose(arch1);
fclose(arch2);//cerrar archivos y liberar memoria
fclose(arch3);
}
22 changes: 22 additions & 0 deletions Examen1/main.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//
// template.h
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#ifndef main_h
#define main_h

#include <stdio.h>
#include <stdlib.h>

#ifndef main_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif



#endif /* main_h */
74 changes: 74 additions & 0 deletions Examen1/procesos.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//
// template.c
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#include "main.h"
#include "procesos.h"
#include "files.h"

float median(float array[]){
float res;
res = ((array[24] + array[23])/2);
return res;
}//end median

int mode(float array[]){
int res,cont,x,max;
for(cont = 0; cont < 50; cont ++){
int num = 0;
for(x = 0; x < 50; x ++){
if((int)array[x] == (int)array[cont]){
num ++;
}//end if
}//end for (x)
if(num > max){
max = num;
res = (int)array[cont];
}//end if
}//end for (cont)
return res;
}//end mode

float mean(float array[]){
float res;
int cont;
for(cont = 0; cont < 50; cont ++){
res += array[cont];
}//end for
res /= 50;


return res;
}//end mean

float stdev(float array[], float mean){
float res;
int cont;

for(cont = 0; cont < 50; cont ++){
res += pow(array[cont]-mean,2);
}
res /= 50;

return res;
}//end stdev

float range(float array[]){
float res;

res = array[49] - array[0];

return res;
}//end range

float IQR(float array[]){
float res, Q1, Q3;
Q1 = (array[10]+array[11])/2; //calcular Q1
Q3 = (array[36]+array[37])/2; //calcular Q3
res = Q3 - Q1;

return res;
}//end IQR
94 changes: 94 additions & 0 deletions Examen1/procesos.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
//
// template.h
//
//
// Created by Juan Carlos Garcia on 08/10/20.
//

#ifndef procesos_h
#define procesos_h

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#ifndef procesos_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif

/*
* @function
* median- calcula la mediana del array
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN float median(float array[]);



/*
* @function
* mean- consigue el promedio de los datos
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN float mean(float array[]);



/*
* @function
* mode- consigue la moda de los datos
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN int mode(float array[]);



/*
* @function
* stdev-usa los datos y el promedio para conseguir la desviacion estandar
* @params
* arr[]- los datos del csv (ya ordenados)
* mean- el promedio de los datos
* @return
* res- el resultado del proceso
*/
EXTERN float stdev(float array[], float mean);


/*
* @function
* range- consigue el rango total de los datos
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN float range(float array[]);



/*
* @function
* IQR- calcula la distancia intercuartil de los datos (calcula Q1 y Q3 antes)
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN float IQR(float array[]);




#endif /* procesos_h */