From 69cb2a07d933a461a8e16fc0176f48599822ec35 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Thu, 8 Oct 2020 15:58:17 -0700 Subject: [PATCH 1/2] Exam 1. No enough time --- Examen1/TDA_Statistics | Bin 0 -> 17584 bytes Examen1/TDA_Statistics.c | 9 ++ Examen1/TDA_Statistics.h | 137 ++++++++++++++++++++++ Examen1/TDA_Statistics.h~ | 171 ++++++++++++++++++++++++++++ Examen1/controlador_Proceso.c | 20 ++++ Examen1/controlador_Proceso.c~ | 12 ++ Examen1/data.csv | 1 - Examen1/modelo_Archivo.c | 10 ++ Examen1/modelo_Calcula_Centrales.c | 28 +++++ Examen1/modelo_Calcula_Centrales.c~ | 2 + Examen1/modelo_Lee_Archivo.c | 35 ++++++ Examen1/modelo_Lee_Archivo.c~ | 20 ++++ Examen1/vista_Menu.c | 17 +++ 13 files changed, 461 insertions(+), 1 deletion(-) create mode 100755 Examen1/TDA_Statistics create mode 100644 Examen1/TDA_Statistics.c create mode 100644 Examen1/TDA_Statistics.h create mode 100644 Examen1/TDA_Statistics.h~ create mode 100644 Examen1/controlador_Proceso.c create mode 100644 Examen1/controlador_Proceso.c~ create mode 100644 Examen1/modelo_Archivo.c create mode 100644 Examen1/modelo_Calcula_Centrales.c create mode 100644 Examen1/modelo_Calcula_Centrales.c~ create mode 100644 Examen1/modelo_Lee_Archivo.c create mode 100644 Examen1/modelo_Lee_Archivo.c~ create mode 100644 Examen1/vista_Menu.c diff --git a/Examen1/TDA_Statistics b/Examen1/TDA_Statistics new file mode 100755 index 0000000000000000000000000000000000000000..9076661bd32f801be037917d8fad100647940cb5 GIT binary patch literal 17584 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 Fe*wCghWP*h literal 0 HcmV?d00001 diff --git a/Examen1/TDA_Statistics.c b/Examen1/TDA_Statistics.c new file mode 100644 index 0000000..5674f2a --- /dev/null +++ b/Examen1/TDA_Statistics.c @@ -0,0 +1,9 @@ +#include"TDA_Statistics.h" + +int main(void) +{ + + vista_Menu(); + + return 0; +} diff --git a/Examen1/TDA_Statistics.h b/Examen1/TDA_Statistics.h new file mode 100644 index 0000000..d5faeea --- /dev/null +++ b/Examen1/TDA_Statistics.h @@ -0,0 +1,137 @@ +// +// TDA_Statistics.h +// +// +// Creado por Rodrigo Garcia el 8 de octubre del 2020. +// Sinceramente siento que dos horas no son suficientes para esto. Una disculpa por el estado del examen, hice todo para lo que me dio tiempo. + +#ifndef TDA_Statistics_h +#define TDA_Statistics_h + + +/* +* System headers required by the following declarations +* (the implementation will import its specific dependencies): +*/ + +#include +#include + +/* +* Application specific headers required by the following declarations +* (the implementation will import its specific dependencies): +*/ + +/* Constants declarations. */ + +/* Set EXTERN macro: */ + +#ifndef TDA_Statistics_IMPORT + #define EXTERN +#else + #define EXTERN extern +#endif + +/* Types declarations. */ + + +/* Global variables declarations. */ +#define COLUMNS 2 + + +/* Function prototypes. */ + + +/* + * + * La funcion vista_Menu proporciona al usuario un menu con la bienvenida y la forma de operar del sistema. + * Pedira el nombre del archivo y se mandara al controlador + * + * @params + * void + + * @returns + none +*/ + + +EXTERN void vista_Menu(void); + + +/* + * + * La funcion controlador_Proceso settea todas las variables correspondientes y realiza las llamadas a la funciones. + * + * + * @params + * nombre_archivo (char *): + nombre del archivo que busca abrirse + + * @returns + none +*/ + + +EXTERN void controlador_Proceso(char * nombre_archivo); + + +/* + * + * La funcion modelo_Archivo abre un archivo del nombre recibido en el modo recibido + * + * + * @params + * nombre_archivo (char *): + Nombre del archivo a abrir + * modo (char *): + modo de apertura del archivo + + * @returns + Archivo abierto en el modo indicado +*/ + + +EXTERN FILE * modelo_Archivo(char * nombre_archivo, char * modo); + + +/* + * + * La funcion modelo_Euler_Method predice la posicion de la persona en el bongee dependiendo de los valores dados + * y la regresa al controlador para ser analizada + * + * @params + * Archivo (FILE *): + Archivo que se va a leer + * dimension (int *) + Puntero a entero que se llevarà el valor del tamanño del array + + * @returns + array de floats con los valores del archivo +*/ + + +EXTERN float * modelo_Lee_Archivo(FILE * Archivo, int * dimension); + +/* + * + * La funcion modelo_Calcula_Centrales calculas las medidas de valor central del arreglo de valores + * + * @params + * array (float *): + Arreglo de los valores con lo que se haran los calculos + * dimension (int *) + Tamaño del array + + * @returns + void +*/ + +EXTERN void modelo_Calcula_Centrales(float * array, int * dimension); + + +#undef TDA_Statistics_IMPORT +#undef EXTERN + + + +#endif /* TDA_Statistics_h */ diff --git a/Examen1/TDA_Statistics.h~ b/Examen1/TDA_Statistics.h~ new file mode 100644 index 0000000..786bcd5 --- /dev/null +++ b/Examen1/TDA_Statistics.h~ @@ -0,0 +1,171 @@ +// +// TDA_Statistics.h +// +// +// Creado por Rodrigo Garcia el 8 de octubre del 2020. +// + +#ifndef TDA_Statistics_h +#define TDA_Statistics_h + + +/* +* System headers required by the following declarations +* (the implementation will import its specific dependencies): +*/ + +#include +#include + +/* +* Application specific headers required by the following declarations +* (the implementation will import its specific dependencies): +*/ + +/* Constants declarations. */ + +/* Set EXTERN macro: */ + +#ifndef TDA_Statistics_IMPORT + #define EXTERN +#else + #define EXTERN extern +#endif + +/* Types declarations. */ + + +/* Global variables declarations. */ +#define COLUMNS 2 + + +/* Function prototypes. */ + + +/* + * + * La funcion vista_Menu proporciona al usuario un menu con la bienvenida y la forma de operar del sistema. + * Pedira el nombre del archivo y se mandara al controlador + * + * @params + * void + + * @returns + none +*/ + + +EXTERN void vista_Menu(void); + + +/* + * + * La funcion controlador_Proceso settea todas las variables correspondientes y realiza las llamadas a la funciones. + * + * + * @params + * nombre_archivo (char *): + nombre del archivo que busca abrirse + + * @returns + none +*/ + + +EXTERN void controlador_Proceso(char * nombre_archivo); + + +/* + * + * La funcion modelo_Archivo abre un archivo del nombre recibido en el modo recibido + * + * + * @params + * nombre_archivo (char *): + Nombre del archivo a abrir + * modo (char *): + modo de apertura del archivo + + * @returns + Archivo abierto en el modo indicado +*/ + + +EXTERN FILE * modelo_Archivo(char * nombre_archivo, char * modo); + + +/* + * + * La funcion modelo_Euler_Method predice la posicion de la persona en el bongee dependiendo de los valores dados + * y la regresa al controlador para ser analizada + * + * @params + * Archivo (FILE *): + Archivo que se va a leer + + * @returns + array de floats con los valores del archivo +*/ + + +EXTERN float * modelo_Lee_Archivo(FILE * Archivo); + +/* + * + * La funcion modelo_Imprime_Archivo imprime una matriz recibida en una archivo CSV + * + * @params + * Archivo (FILE *): + Puntero al archivo donde se imprimira la matriz + * columnas (size_t): + Columnas de la matriz + * buffer[][columnas] (double): + Matriz recibida para imprimir + * filas (size_t): + Filas de la matriz + + * @returns + void +*/ + +//EXTERN void modelo_Imprime_Archivo(FILE * Archivo, size_t columnas, double buffer[] [columnas], size_t filas); + + +/* + * La funcion modelo_Nuevo_Archivo instacia un apuntador a un archivo nuevo + * + * @param + * nombre_archivo (char *): + Nombre del archivo + * modo (char *): + Modo en que sera abierto el archivo {r, rb, a, ab, w, wb} + + * @return + apuntador al archivo abierto. +*/ + +//EXTERN FILE * modelo_Nuevo_Archivo(char *nombre_archivo, char *modo); + + +/* + * + * La funcion modelo_Grafica genera un plot del archivo CSV previamente creado. + * + * @params + * nombre_archivo (* char): + Archivo el cual sera graficado por GNUplot + + * @returns + void +*/ + +//EXTERN void modelo_Grafica (char * nombre_archivo); + + + +#undef TDA_Statistics_IMPORT +#undef EXTERN + + + +#endif /* TDA_Statistics_h */ diff --git a/Examen1/controlador_Proceso.c b/Examen1/controlador_Proceso.c new file mode 100644 index 0000000..3e2f45b --- /dev/null +++ b/Examen1/controlador_Proceso.c @@ -0,0 +1,20 @@ +#include"TDA_Statistics.h" + +void controlador_Proceso(char * nombre_archivo) +{ + int i; + + int * tamano; + FILE * Archivo = NULL; + float * array; + + Archivo = modelo_Archivo(nombre_archivo,"r"); + + array = modelo_Lee_Archivo(Archivo,tamano); + + modelo_Calcula_Centrales(array,tamano); + + free(array); + + fclose(Archivo); +} diff --git a/Examen1/controlador_Proceso.c~ b/Examen1/controlador_Proceso.c~ new file mode 100644 index 0000000..e07ca0f --- /dev/null +++ b/Examen1/controlador_Proceso.c~ @@ -0,0 +1,12 @@ +#include"TDA_Statistics.h" + +void controlador_Proceso(char * nombre_archivo) +{ + FILE * Archivo = NULL; + + Archivo = modelo_Archivo(nombre_archivo,"r"); + + modelo_Lee_Archivo(Archivo); + + fclose(Archivo); +} diff --git a/Examen1/data.csv b/Examen1/data.csv index a6eeb05..ba235b9 100644 --- a/Examen1/data.csv +++ b/Examen1/data.csv @@ -1,4 +1,3 @@ -,0 0,5.077850806 1,5.11361086 2,5.013413304 diff --git a/Examen1/modelo_Archivo.c b/Examen1/modelo_Archivo.c new file mode 100644 index 0000000..cee8373 --- /dev/null +++ b/Examen1/modelo_Archivo.c @@ -0,0 +1,10 @@ +#include"TDA_Statistics.h" + +FILE * modelo_Archivo(char * nombre_archivo, char * modo) +{ + FILE * Archivo = NULL; + + Archivo = fopen(nombre_archivo,modo); + + return Archivo; +} diff --git a/Examen1/modelo_Calcula_Centrales.c b/Examen1/modelo_Calcula_Centrales.c new file mode 100644 index 0000000..4c7f0f9 --- /dev/null +++ b/Examen1/modelo_Calcula_Centrales.c @@ -0,0 +1,28 @@ +#include"TDA_Statistics.h" + +void modelo_Calcula_Centrales(float * array, int * tamano) +{ + float suma=0,media=0,mediana=0; + int i; + + for(i=0;i<*tamano;i++) + { + suma = suma + array[i]; + } + + media = suma / *tamano; + + if(*tamano % 2 != 0) + { + mediana = array[*tamano/2]; + } + + else + { + mediana = (array[(int) *tamano/2] + array[((int) *tamano/2)+1])/2; + } + + printf("Media = %f\n",media); + printf("Mediana = %f\n",mediana); + +} diff --git a/Examen1/modelo_Calcula_Centrales.c~ b/Examen1/modelo_Calcula_Centrales.c~ new file mode 100644 index 0000000..700b0d9 --- /dev/null +++ b/Examen1/modelo_Calcula_Centrales.c~ @@ -0,0 +1,2 @@ +#include"TDA_Statistics.h" + diff --git a/Examen1/modelo_Lee_Archivo.c b/Examen1/modelo_Lee_Archivo.c new file mode 100644 index 0000000..a68d507 --- /dev/null +++ b/Examen1/modelo_Lee_Archivo.c @@ -0,0 +1,35 @@ +#include"TDA_Statistics.h" + +float * modelo_Lee_Archivo(FILE * Archivo, int * dimension) +{ + int count_datos = 0, i = 0; + + int temp; + float temp2; + + float * data_array; + + //Primero lo leemos sin guardar nada para determinar su tamaño. + while(!feof(Archivo)) + { + fscanf(Archivo,"%d,%f\n",&temp,&temp2); + count_datos++; + } + + *dimension = count_datos; + + //Con la cantidad obtenida, instanciamos el arreglo. + data_array = (float *)malloc(count_datos * sizeof(float)); + + rewind(Archivo); + + //Lo leemos nuevamente y esta vez guardamos los datos en el arreglo + while(!feof(Archivo)) + { + fscanf(Archivo,"%d,%f\n",&temp,&data_array[i]); + i++; + } + + //Lo retornamos cuando hayamos recopilado los datos. + return data_array; +} diff --git a/Examen1/modelo_Lee_Archivo.c~ b/Examen1/modelo_Lee_Archivo.c~ new file mode 100644 index 0000000..5c07dbb --- /dev/null +++ b/Examen1/modelo_Lee_Archivo.c~ @@ -0,0 +1,20 @@ +#include"TDA_Statistics.h" + +float * modelo_Lee_Archivo(FILE * Archivo) +{ + int count_datos = 0; + + int temp; + float temp2; + + float * data_array; + + //Primero lo leemos sin guardar nada para determinar su tamaño. + while(!feof(Archivo)) + { + fscanf(Archivo,"%d,%f\n",&temp,&temp2); + count_datos++; + } + + printf("\n\n%d datos\n",count_datos); +} diff --git a/Examen1/vista_Menu.c b/Examen1/vista_Menu.c new file mode 100644 index 0000000..5466d82 --- /dev/null +++ b/Examen1/vista_Menu.c @@ -0,0 +1,17 @@ +#include"TDA_Statistics.h" + +void vista_Menu() +{ + char nombre_archivo[50]; + + system("clear"); + + printf("\n\nIngrese el nombre del archivo para la captura de datos."); + printf("\nNombre del archivo: "); + gets(nombre_archivo); + + controlador_Proceso(nombre_archivo); + + +} + From d68ea121332fa50c1dccd346d9e578bb4167e6ee Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 13 Oct 2020 16:00:28 -0700 Subject: [PATCH 2/2] =?UTF-8?q?A=C3=B1adiendo=20la=20creacion=20del=20arch?= =?UTF-8?q?ivo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Examen1/TDA_Statistics | Bin 17584 -> 17704 bytes Examen1/TDA_Statistics.h | 21 ++++ Examen1/TDA_Statistics.h~ | 171 ---------------------------- Examen1/controlador_Proceso.c~ | 12 -- Examen1/data_statistics.csv | 3 + Examen1/modelo_Calcula_Centrales.c | 4 + Examen1/modelo_Calcula_Centrales.c~ | 2 - Examen1/modelo_Crea_Archivo.c | 15 +++ Examen1/modelo_Lee_Archivo.c~ | 20 ---- 9 files changed, 43 insertions(+), 205 deletions(-) delete mode 100644 Examen1/TDA_Statistics.h~ delete mode 100644 Examen1/controlador_Proceso.c~ create mode 100644 Examen1/data_statistics.csv delete mode 100644 Examen1/modelo_Calcula_Centrales.c~ create mode 100644 Examen1/modelo_Crea_Archivo.c delete mode 100644 Examen1/modelo_Lee_Archivo.c~ diff --git a/Examen1/TDA_Statistics b/Examen1/TDA_Statistics index 9076661bd32f801be037917d8fad100647940cb5..97e79d16e67085c4b047307b52929144bbf7459d 100755 GIT binary patch delta 3408 zcmZ`+eN3Cj8Nc%fwuxPTfO&CJz$T$MX|XX72&^tP;KXzx4O&UsP6}px3`_jOc6-aMzV%O`YDWfV*P2BWn4;oZq&;SnV z3mdhnD3I7xnIdFijg_f#Ecm}TqfzB6aE40ues0yzt@>e_{?0S!R&5@}gi4bHd{gs` z=l{(x$!C}ZleRtg;=bw&*@q7uZu;Kszb}^NeS5WM>v!SHTCbC>SOiPR8O607-qM!R zGq9+Y=!*K&_Yt8l%hfuJRxG(vJZ@q3 z<6Iux8aFZ9Z=uYJ$TZ(HGU-tHUY=XQ$KYnx=Urx1skF=Ws=)Tm1}z53!jFSOpMn8o zhPVwo1zLF7Ai)m|X3Ka6tA`&V`yR5B8LR>Rf~?tSw#;O(*y1IA9n1zWMP!B5DlT+#@;Y(LHIWnNbA1Y}trU$Yk8L&XEgx4&A2oiZOG z)}kgtxT54Cx!@t$3771JhlcfpM8_;v1%h!MA+mE759<1ObS&t?A<;3tgF)>^!WkXa z{}y%8ucZB(LQO&gHyj?z>H}Ghjz-eaVp zfHmupt7}$!WPQ#0LgYS9JA&jDcD&Q?-j`*@t|R-EO?F0MZISiS$o(~|&3OtnR_|Po z^>`}HzU=WE*I3TlFtq5|B{%cEgiT8to3`80>yZsKVhd|LjU&h$<7#uga(G{(%D)Hjn34MC;9t=3EPv60BGyNux!`ys;{VPgnvnufjI#-F; z6e5yh8B#13J|)tB#c9TI4(4Ac{2xSv8`pY#)}mL~06gCz<#>k=?;i_xK1N9RP;>H+ z1>v^lT;U97DXgF3UrR$&X}t67f5TDMatTW%(B3 zB}6Z*xJwIS=n-!MLYfThek41vR$-m`7tRd3J=-e|Vl0Y^sj=i@WpPH4Pa%r(D0W`O zdUF}hc?xM6OnZtN_F|xMoRCBwu?=e)Em_(aH5-hC882b|1_nNfxT)7%WNJlk#&Om) z_=jh!{t4_Zf~k0$en0m906UAfWgW#{XdRv|ZZN)y-CkTWtd!@>&J?$1o5Z~xgMl)? zy;ovW5aLpS#NdsxBH9ZJWqx`JsIQ2A2p*r`9^*G9fBc9WI($X;5&md%AagL`dxnm{ zB97|<>i;6`hj2v>q%=Ah@;^s!%`W(hC^}v#m(aiyaB59t1W}@MinIl#*1$fx3}*t) zDk~wGF9i=#i_ew#LBS~nv}oKb!TSLpIw4IWiZg1E?kFRy?u7ra>8n!SknA@So-O;;9z=5rxko;s=l5 z2NXZ~L~O3$x8oJ9A?97`4+Fs>ejNumST6Xf!6!^97s0bz(oLfl6Q83Y--p)SlIvI8 zx*$ijs^!+dXV!tcTszJ4%|0Afw0Oj9cphybMciz%!Co!7CfFzq+vrV&(kWzGTBo!> zQQ8Bn4SWH;v54E9s{JY-HpuyR*f)!1Qfcv8V53}9JO&ctG>0E6o`20+-Fs-GuJ%J% zsFn&gP`2Y-#H||RyRH-iCes0LXmSc%tcS5I=c$@*Zn0BXbO&*DHnNrEhq#KvkI*+8 zDUQ8zEuk)mBboifxoYM!wep$xBFO!jlNV$*D?=Y;?NV-YXvR{{5 z$j`Z5cOLB8bJyH>qPwF#e4?{A{$k&(wYG!8D|Mw?j`ekQAMI;rN_efV8v5&UXa7|9 zyavC1{cL$KM(GSpJmt5a;-^L+rVrV!EOo5{cYwX#ZyMq32sGE%nC7@N2g&-H&C5qz zLT*^7KTYSMHROj>$Ohw~ay#ybS~#X)A>`lucSNM~vK|~^U$!_?c!@k6-iw#WMA&Z^ z-;BTnEFdec7J+!-H26*8yNf|{Lk)x)%3-F#W)fd%Kip`j*}O<&d=DqV-Y8o_c(Jom cfVBz=njSX|?NJDF9a@`eH2a=}b4`!^7eK8a0ssI2 delta 2875 zcmZ`*drVtZ7(eIsK?`)Wg>vbblrrZYLQ8q9uu*AwXxUiiqBwNMjbsl{#y}zK)MX%I z=r-cm=MsFQi3W|+PX0mv(Bhnmi4hZHwnP(VqIS#1V6dcf%A^}}fnh;0RU~G` zrU*>gT%g#^zB_S*`$eFKik1*pg}5pNAJ8A2{ke+IQfyUd(h9E%Tb=(m!Vn)}2#lJY z8Mm*#w!O7;*%t?UU7FW_gT46$e|`(kYu4CUzG||B^vI#j@R?>c?S_jQQTrY;U@1x$ z$OfP~H~6(#Fot(O-jmua+QwA0RMw7jEl65BG@_tTm!+Ld1lS2py8HC)Pq(yn?uEB> zMQ~m>U}RZph(NT^p%?d~f!S!}jCdtUMoWu{5H0D$KE{c%tsyUSyK8xikzj;Z(Po!g zYCdbE+p6&Gytpdwhgtm&ngUyrL{FL`k)QEO#bDE?=D?V4&L?4;!s#RtK1xb8omj+b z;WuP|MRs@*s|S-ogj7SSDYA$)fDhRUWTT7NRM?MfE3%V|*kz+VA|#zO=NUG+3Arw< z+6?Q=pO;|6gm#*vhLE|moWIfTbKPklUSfAa+>ZyNpG&jU&d;SiR=a@1jvzV47H{mA1xaG;JhE>k*ysX0 zW_!S~6A278hC&ishsxgC7{&PKS^Q@gAZlA-eIDsxxOPURD;8kdcDG|Xd6Da9x0vgd zgsX7@JekXd)3;zt=K3RjD2;Wa1XJk2wldrih4?T*w8=zmG?CE2e?;sx%;E&55Z@gv z)~;HE`F84JD^M_TcCRbV@gjQzd8z~3>j!+BR}&I=q%QnRprI~ozY%yi5MF2q4ir=% z|4{wf+ri!|hS--kM;+ot14Il{Cv(^6SMAPUwKo~sa-Z14j*(QnhptJ|Fk<73Bz=e2 zj5vjuH7iN|i1fN7#Syy@v#{D9BbFiFnv7+1YkVBx`OxXnB{fEM89w;5hWG<_CrTrwk{uAO)!|3t*^({cXRM* zUX|e$Y|h}z!E9mrsCngs$ymG&qk4?^p{2lW>Ca@b39&0cn&E>22W^Lm0yo_SH?e&g z>@K&ZnQvo$7!w0L>T+1x*%^Wt2NHp>Yb$zRa5?BExarzQL(t?tFnZpdMKRoLp@_88 zW78N(JEBMERsyT!WN?7c{;sf*= zT*R0JJSFaA6V{TF4Dv=EJXvy&CmT(ILiH?G1F(6Z1k>SXw91#lV2QXVD0`(7^+Txk z?vTB*h+1Tok7Kn3wzd}^-`LrKdMlFMeDZYMp@;EsMo6as+e*dKSI|F~O|4&zsNg5u z|28jCIq&{L^)J1^6=ANB*D>D}_POn%n0 zr+pXZ$lj$lL(yO7ZqLZQC$X1}xAYC(mLr@2>J{x#)K~;NG5GHs@dxmDMf$58XPS>< z=2`9G(tqSQt6>o1upbSUiTd+|pCtLR!Z`Nk;FpEgFO=6)^(P~`p%jc83r06@Y!pUE ze7h*czoAOEWfz}$6)(e2Md|Q( -#include - -/* -* Application specific headers required by the following declarations -* (the implementation will import its specific dependencies): -*/ - -/* Constants declarations. */ - -/* Set EXTERN macro: */ - -#ifndef TDA_Statistics_IMPORT - #define EXTERN -#else - #define EXTERN extern -#endif - -/* Types declarations. */ - - -/* Global variables declarations. */ -#define COLUMNS 2 - - -/* Function prototypes. */ - - -/* - * - * La funcion vista_Menu proporciona al usuario un menu con la bienvenida y la forma de operar del sistema. - * Pedira el nombre del archivo y se mandara al controlador - * - * @params - * void - - * @returns - none -*/ - - -EXTERN void vista_Menu(void); - - -/* - * - * La funcion controlador_Proceso settea todas las variables correspondientes y realiza las llamadas a la funciones. - * - * - * @params - * nombre_archivo (char *): - nombre del archivo que busca abrirse - - * @returns - none -*/ - - -EXTERN void controlador_Proceso(char * nombre_archivo); - - -/* - * - * La funcion modelo_Archivo abre un archivo del nombre recibido en el modo recibido - * - * - * @params - * nombre_archivo (char *): - Nombre del archivo a abrir - * modo (char *): - modo de apertura del archivo - - * @returns - Archivo abierto en el modo indicado -*/ - - -EXTERN FILE * modelo_Archivo(char * nombre_archivo, char * modo); - - -/* - * - * La funcion modelo_Euler_Method predice la posicion de la persona en el bongee dependiendo de los valores dados - * y la regresa al controlador para ser analizada - * - * @params - * Archivo (FILE *): - Archivo que se va a leer - - * @returns - array de floats con los valores del archivo -*/ - - -EXTERN float * modelo_Lee_Archivo(FILE * Archivo); - -/* - * - * La funcion modelo_Imprime_Archivo imprime una matriz recibida en una archivo CSV - * - * @params - * Archivo (FILE *): - Puntero al archivo donde se imprimira la matriz - * columnas (size_t): - Columnas de la matriz - * buffer[][columnas] (double): - Matriz recibida para imprimir - * filas (size_t): - Filas de la matriz - - * @returns - void -*/ - -//EXTERN void modelo_Imprime_Archivo(FILE * Archivo, size_t columnas, double buffer[] [columnas], size_t filas); - - -/* - * La funcion modelo_Nuevo_Archivo instacia un apuntador a un archivo nuevo - * - * @param - * nombre_archivo (char *): - Nombre del archivo - * modo (char *): - Modo en que sera abierto el archivo {r, rb, a, ab, w, wb} - - * @return - apuntador al archivo abierto. -*/ - -//EXTERN FILE * modelo_Nuevo_Archivo(char *nombre_archivo, char *modo); - - -/* - * - * La funcion modelo_Grafica genera un plot del archivo CSV previamente creado. - * - * @params - * nombre_archivo (* char): - Archivo el cual sera graficado por GNUplot - - * @returns - void -*/ - -//EXTERN void modelo_Grafica (char * nombre_archivo); - - - -#undef TDA_Statistics_IMPORT -#undef EXTERN - - - -#endif /* TDA_Statistics_h */ diff --git a/Examen1/controlador_Proceso.c~ b/Examen1/controlador_Proceso.c~ deleted file mode 100644 index e07ca0f..0000000 --- a/Examen1/controlador_Proceso.c~ +++ /dev/null @@ -1,12 +0,0 @@ -#include"TDA_Statistics.h" - -void controlador_Proceso(char * nombre_archivo) -{ - FILE * Archivo = NULL; - - Archivo = modelo_Archivo(nombre_archivo,"r"); - - modelo_Lee_Archivo(Archivo); - - fclose(Archivo); -} diff --git a/Examen1/data_statistics.csv b/Examen1/data_statistics.csv new file mode 100644 index 0000000..ab18a0d --- /dev/null +++ b/Examen1/data_statistics.csv @@ -0,0 +1,3 @@ +Media: 4.955432 +Mediana: 5.016256 +Moda: 1.000000 diff --git a/Examen1/modelo_Calcula_Centrales.c b/Examen1/modelo_Calcula_Centrales.c index 4c7f0f9..6a4143b 100644 --- a/Examen1/modelo_Calcula_Centrales.c +++ b/Examen1/modelo_Calcula_Centrales.c @@ -25,4 +25,8 @@ void modelo_Calcula_Centrales(float * array, int * tamano) printf("Media = %f\n",media); printf("Mediana = %f\n",mediana); + + //Se manda un uno en el valor de la moda ya que no hubi tiempo de calcular la moda. + modelo_Crea_Archivo(media,mediana,1); + } diff --git a/Examen1/modelo_Calcula_Centrales.c~ b/Examen1/modelo_Calcula_Centrales.c~ deleted file mode 100644 index 700b0d9..0000000 --- a/Examen1/modelo_Calcula_Centrales.c~ +++ /dev/null @@ -1,2 +0,0 @@ -#include"TDA_Statistics.h" - diff --git a/Examen1/modelo_Crea_Archivo.c b/Examen1/modelo_Crea_Archivo.c new file mode 100644 index 0000000..37464e3 --- /dev/null +++ b/Examen1/modelo_Crea_Archivo.c @@ -0,0 +1,15 @@ +#include"TDA_Statistics.h" + +void modelo_Crea_Archivo(float media, float mediana, float moda) +{ + FILE * Archivo = NULL; + + Archivo = modelo_Archivo("data_statistics.csv","w"); + + fprintf(Archivo, "Media: %f\n",media); + fprintf(Archivo, "Mediana: %f\n",mediana); + fprintf(Archivo, "Moda: %f\n",moda); + + fclose(Archivo); + +} diff --git a/Examen1/modelo_Lee_Archivo.c~ b/Examen1/modelo_Lee_Archivo.c~ deleted file mode 100644 index 5c07dbb..0000000 --- a/Examen1/modelo_Lee_Archivo.c~ +++ /dev/null @@ -1,20 +0,0 @@ -#include"TDA_Statistics.h" - -float * modelo_Lee_Archivo(FILE * Archivo) -{ - int count_datos = 0; - - int temp; - float temp2; - - float * data_array; - - //Primero lo leemos sin guardar nada para determinar su tamaño. - while(!feof(Archivo)) - { - fscanf(Archivo,"%d,%f\n",&temp,&temp2); - count_datos++; - } - - printf("\n\n%d datos\n",count_datos); -}