diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..1da0ecb Binary files /dev/null and b/.DS_Store differ diff --git a/EXAMEN1_TDA_Carlos_Ibarra.pdf b/EXAMEN1_TDA_Carlos_Ibarra.pdf new file mode 100644 index 0000000..a49558f Binary files /dev/null and b/EXAMEN1_TDA_Carlos_Ibarra.pdf differ diff --git "a/Examen1/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" "b/Examen1/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" index bdc8c9b..ae9e790 100644 Binary files "a/Examen1/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" and "b/Examen1/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" differ diff --git a/Examen1/data.csv b/Examen1/data.csv new file mode 100644 index 0000000..a6eeb05 --- /dev/null +++ b/Examen1/data.csv @@ -0,0 +1,51 @@ +,0 +0,5.077850806 +1,5.11361086 +2,5.013413304 +3,4.7066951 +4,4.976198376 +5,4.687136226 +6,5.124400784 +7,5.091652721 +8,4.626762324 +9,5.35344503 +10,5.031065345 +11,4.162632474 +12,5.099215149 +13,4.314255758 +14,5.071030028 +15,5.146366446 +16,5.286848671 +17,5.132360742 +18,5.04395336 +19,5.636707268 +20,4.777943651 +21,4.89574049 +22,5.169317399 +23,4.893662278 +24,4.417269492 +25,5.076816536 +26,4.955695648 +27,4.815426492 +28,5.126990887 +29,5.111338314 +30,5.478111414 +31,4.925767003 +32,5.042099781 +33,4.676226811 +34,5.079265995 +35,4.424209541 +36,5.028716159 +37,4.933538801 +38,4.978475742 +39,4.798586263 +40,4.695443163 +41,4.923005744 +42,5.167948946 +43,5.139372134 +44,4.670964362 +45,4.903235874 +46,5.202417898 +47,5.190025396 +48,5.076624563 +49,4.501765132 \ No newline at end of file diff --git "a/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" "b/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" new file mode 100644 index 0000000..ae9e790 Binary files /dev/null and "b/Primer examen parcial Grupo B Oto\303\261o 2020.pdf" differ diff --git a/TDA_Statistic.c b/TDA_Statistic.c new file mode 100644 index 0000000..26dfb1a --- /dev/null +++ b/TDA_Statistic.c @@ -0,0 +1,79 @@ +// +// TDA_statistic.c +// +// +// Created by Carlos Ibarra on 08/10/2020. +// + +#include +#include + +#include "central.h" +#include "dispersion.h" + +int main (void){ + + int i=0; //index para crear array + int ancho_clase; //para histograma + int n; //numero de datos + + FILE * fp; //abre .csv + float array1[100]; //arreglo con los datos del archivo sin ordenar + float x; //ayudante para lectura de file + + //estadisticos + float media1, mediana1, moda1, desviacion1, rango1, intercuartil1; + float array2[100]; //arreglo ordenado; + + //Leer datos + fp = fopen ("data.csv", "r"); + if (fp != NULL){ + + while (fscanf (fp, "%f", &x)==1){ + array1[i] = x; + i++; + } + fclose (fp); + } + + //Aqui se ordena el arreglo + //array2 = array1 ordenado + + n = sizeof(array2)/sizeof(array2[0]); + + //Medidas de tendencia central + media1 = media (array2, n); + mediana1 = mediana (array2, n); + moda1 = moda (array2, n); + //Medidas de dispersion + desviacion1 = desviacion (array2, n); + rango1 = rango (array2, n); + intercuartil1 = intercuartil (array2, n); + + printf("Ancho de clase: "); + scanf("%d",&ancho_clase); + + //histograma (array2); + + //Guardar datos + fp = fopen ("data_statistics.csv", "w"); + + fprintf(fp, "media: &.2f", media1); + fprintf(fp, "mediana: &.2f", mediana1); + fprintf(fp, "moda: &.2f", moda1); + fprintf(fp, "desviacion: &.2f", desviacion1); + fprintf(fp, "rango: &.2f", rango1); + fprintf(fp, "distancia intercuaritil: &.2f", intercuartil1); + fclose(fp); + + //Segundo archivo, con datos de histograma, para graficar + //fp = fopen ("data_graphics.csv", "w"); + //fprintf (informacion de clases del histograma); + //fclose(fp); + + //pipe a gnuplot + /*pipe = popen("gnuplot -persist"); + fprintf(pipe, "plot data_graphics.csv with lines"); + pclose(pipe); +}*) + diff --git a/central.c b/central.c new file mode 100644 index 0000000..5221099 --- /dev/null +++ b/central.c @@ -0,0 +1,52 @@ +// +// central.c +// +// +// Edited Created by Carlos Ibarra on 08/10/2020. +// + +#include +#include "dispersion.h" + +#define central_IMPORT + +float suma (float array2[], int n){ + + int i; + float suma = 0; + + for (i = 0; i< n; i++) + { + suma = suma + array2[i]; + } + return suma; +} + +float media (float array2[], int n){ + + float media; + media = suma (array2, n); + media = media /n; + return media; +} + +float mediana (float array2[], int n){ + + int i; + float med; + if (n%2 == 0) + { + med = array2[n/2]; + } + else + med= array2[n/2 + 1]; + + return med; +} + +float moda (float array2[], int n){ + + //por el momento regresaremos el dato en la posicion n/2 + return array2[n/2]; +} + diff --git a/central.h b/central.h new file mode 100644 index 0000000..f0576f1 --- /dev/null +++ b/central.h @@ -0,0 +1,32 @@ +// +// central.h +// +// +// Created by Carlos Ibarra on 08/10/2020. +// + +#ifndef central_H +#def central_H + +#include + +#ifdef central_IMPORT +#def EXTERN +#else +#def EXTERN extern +#endif + +float suma (float array2[], int n); + +float media (float array2[], int n); +//Funcion que calcula la media y la regresa + +float mediana (float array2[], int n); +//Funcion que calcula la mediana y la regresa + +float moda (float array2[], int n); +//Funcion que calcula la moda y la regresa + +#undef central_IMPORT +#undef EXTERN +#endif diff --git a/data.csv b/data.csv new file mode 100644 index 0000000..2acf3e1 --- /dev/null +++ b/data.csv @@ -0,0 +1,30 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +30 +29 +28 +27 +26 +25 +24 +23 +22 +21 \ No newline at end of file diff --git a/dispersion.c b/dispersion.c new file mode 100644 index 0000000..626a906 --- /dev/null +++ b/dispersion.c @@ -0,0 +1,37 @@ +// +// dispersion.c +// +// +// Created by Carlos Ibarra on 08/10/2020. +// + +#include +#include + +#define dispersion_IMPORT + +float desviacion (float array2[], int n){ + + int i; + float suma = 0; + for (i=0; i +#include + +#ifdef dispersion_IMPORT +#def EXTERN +#else +#def EXTERN extern +#endif + +float desviacion (float array2[], int n); +//Funcion que calcula la desviacion y la regresa + +float rango (float array2[], int n); +//Funcion que calcula el rango y lo regresa + +float intercuartil (float array2[], int n); +//Funcion que calcula la la distanicia intercuartil y la regresa + +#undef dispersion_IMPORT +#undef EXTERN +#endif