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/.DS_Store
Binary file not shown.
Binary file added Examen1/Bernardo/.DS_Store
Binary file not shown.
Binary file added Examen1/Bernardo/.Hola
Binary file not shown.
Binary file added Examen1/Bernardo/Documentación.docx
Binary file not shown.
Binary file added Examen1/Bernardo/Examen
Binary file not shown.
53 changes: 53 additions & 0 deletions Examen1/Bernardo/controlador.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
//
// controlador.c
//
//
// Created by Bernardo García 8/oct/2020
//
//#include "controlador.h"
#include "controlador.h"

int main()
{
controlador();
}

void controlador(){
float med, mod, medi, desvi, min, max, dist;
int size=0;
char archivo[20];
ERROR_CODE validar;
float *arreglo=NULL;
do{
vista_archivo(archivo);
validar=seguridad_validar(archivo);
if(validar==INVALID)
vista_error();
}while(validar==INVALID);

FILE* data=pipesOpenFile(archivo);
arreglo=memoriaNuevoMalloc(data, &size);
rewind(data);
pipesObtenerValores(arreglo, data);
ordenar(arreglo, size);
med=media(arreglo, size);
mod=moda(arreglo, size);
medi=mediana(arreglo, size);
desvi=desviacion(arreglo, med, size);
min=minimo(arreglo, size);
max=maximo(arreglo, size);
dist=distancia(arreglo, size);
FILE *info=pipesWriteNewFile("data_statistic.txt");
pipesWrite(info, med, mod, medi, desvi, min, max, dist);
cast(arreglo, size);
pipesCloseFile(info);
FILE *especial=pipesWriteNewFile("data_plot.csv");
pipesWritePlot(especial, arreglo, size);
FILE* plot=pipesOpenGnuPlot();
pipesGraphGnuPlot(plot, "data_plot.csv");
free(arreglo);
fclose(plot);
pipesCloseFile(data);
pipesCloseFile(especial);

}
35 changes: 35 additions & 0 deletions Examen1/Bernardo/controlador.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// controlador.h
//
//
// Created by Bernardo García 8/oct/2020
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include "vista.h"
#include "modelo.h"
#include "pipes.h"
#include "seguridad.h"
#include "memoria.h"
#ifndef controlador_h
#define controlador_h
#ifndef controlador_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif


/* Función del módulo. */
/*
* El módulo controlador se encarga de controlar el flujo de programa, ya que ésta es la encargada de conectar a los módulos de vista y modelo, así como revisar las validaciones.
*
*
*/
void controlador();

#undef controlador_IMPORT
#undef EXTERN
#endif /*controlador.h*/
50 changes: 50 additions & 0 deletions Examen1/Bernardo/data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
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
2 changes: 2 additions & 0 deletions Examen1/Bernardo/data_plot.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
4,23
5,27
8 changes: 8 additions & 0 deletions Examen1/Bernardo/data_statistic.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Media: 4.955432
Moda: 4.162632
Mediana: 5.031065
Desviacion: 0.280655
Minimo: 4.162632
Maximo: 5.636707
Rango: 1.474075
Distancia: 0.554859
12 changes: 12 additions & 0 deletions Examen1/Bernardo/memoria.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#include "memoria.h"

float *memoriaNuevoMalloc(FILE* file, int *size){
int Basura;
float Basura2;
float *buffer=NULL;
while(fscanf(file, "%d,%f", &Basura, &Basura2)==2){
*size=*size+1;
}
buffer = malloc(*size+1);
return buffer;
}
43 changes: 43 additions & 0 deletions Examen1/Bernardo/memoria.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// memoria.h
//
//
// Created by Bernardo García 8/oct/2020
//

#ifndef memoria_h
#define memoria_h

/*
* System headers required by the following declarations
* (the implementation will import its specific dependencies):
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* Application specific headers required by the following declarations
* (the implementation will import its specific dependencies):
*/

/* Constants declarations. */

/* Set EXTERN macro: */

#ifndef memoria_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif


/* Global variables declarations. */


/* Function prototypes. */
EXTERN float *memoriaNuevoMalloc(FILE* data, int *size);

#undef memoria_IMPORT
#undef EXTERN
#endif /* memoria_h */
102 changes: 102 additions & 0 deletions Examen1/Bernardo/modelo.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
//
// vista.c
//
//
// Created by Bernardo García 8/oct/2020
//

#include "modelo.h"
#include <math.h>

void ordenar(float *arreglo, int size){
float extra=0;
for(int i=0; i<size; i++){
for(int j=i+1; j<size; j++){
if(arreglo[i]>arreglo[j]){
extra=arreglo[j];
arreglo[j]=arreglo[i];
arreglo[i]=extra;
}
}
}
}

float media(float *arreglo, int size){
float Sum=0;
for(int i=0; i<size; i++){
Sum=Sum+arreglo[i];
}
return Sum=Sum/size;
}

float mediana(float *arreglo, int size){
int mediana;
mediana=size;
mediana=mediana/2;
if(size%2==0){
return arreglo[mediana];
}
else{
return (arreglo[mediana]+arreglo[mediana+1])/2;
}
}

float moda(float *arreglo, int size){
int contador=0;
int max=0;
float moda=0;
for(int i=0; i<size; i++){
contador=0;
for(int j=0; j<size; j++){
if(arreglo[i]==arreglo[contador]){
contador=contador+1;
}
}
if(contador>max){
moda=arreglo[i];
}
}
return moda;
}

float desviacion(float *arreglo, float media, int size){
float Sum=0;
for(int i=0; i<size; i++){
Sum=Sum+(pow(arreglo[i]-media,2));
}
Sum=Sum/size;
return sqrt(Sum);
}

float minimo(float *arreglo, int size){
float Minimo=99999;
for(int i=0; i<size; i++){
if(arreglo[i]<Minimo){
Minimo=arreglo[i];
}
}
return Minimo;
}

float maximo(float *arreglo, int size){
float Maximo=0;
for(int i=0; i<size; i++){
if(arreglo[i]>Maximo){
Maximo=arreglo[i];
}
}
return Maximo;
}

float distancia(float *arreglo, int size){
int A=(int)size*0.95;
int B=(int)size*0.25;
float distancia=arreglo[A]-arreglo[B];
return distancia;
}

void cast(float *arreglo, int size){
for(int i=0; i<size; i++){
arreglo[i]=(int)arreglo[i];
}
}
64 changes: 64 additions & 0 deletions Examen1/Bernardo/modelo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
//
// modelo.h
//
//
// Created by Bernardo García 8/oct/2020
//

#ifndef modelo_h
#define modelo_h

/*
* System headers required by the following declarations
* (the implementation will import its specific dependencies):
*/

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

/*
* Application specific headers required by the following declarations
* (the implementation will import its specific dependencies):
*/

/* Constants declarations. */

/* Set EXTERN macro: */

#ifndef modelo_IMPORT
#define EXTERN
#else
#define EXTERN extern
#endif


/* Global variables declarations. */
//

/* Function prototypes. */

EXTERN void ordenar(float *arreglo, int size);

EXTERN float media(float *arreglo, int size);

EXTERN float mediana(float *arreglo, int size);

EXTERN float moda(float *arreglo, int size);

EXTERN float desviacion(float *arreglo, float media, int size);

EXTERN float minimo(float *arreglo, int size);

EXTERN float maximo(float *arreglo, int size);

EXTERN float distancia(float *arreglo, int size);

EXTERN void cast(float*arreglo, int size);
/*
*
*
*/

#undef modelo_IMPORT
#undef EXTERN
#endif /* modelo_h */
Loading