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
35 changes: 35 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#Makefile for Array (sirve ya para todos los programas)

# targets que no generan files
.PHONY = all CLEAN

#Variables:
CC = gcc
world := hola #variable estatica
CFLAGS = -C0 -s -lm
linkers = -lm -lpthread

#Functions
deps = $(wildcard *.c) #dependencias
depsh = $(wildcard *.h)
BINS = $(deps: %.c = %.o)


all: ${BINS} TDA_Statistics


BINS: $(deps)
${CC} -c $^ ${CFLAGS}
@echo "Generating binary objects"


TDA_Statistics: ${BINS}
${CC} -o $@ $^ ${linkers}
@echo "Generating excecutable"

PRINT:
@echo $(deps) $(BINS)

CLEAN:
rm -rvf *.o TEST_ARRAY
@echo "Removing all binary objects and excecutables"
Binary file added TDA_Statistics
Binary file not shown.
60 changes: 60 additions & 0 deletions TDA_Statistics.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*
* Examen Parcial 1
* @ Taller de Desarrollo de Aplicaciones
* @ copyright 2021
* @ author: Vergara Mendoza Monica Ivette
* @ version 25/03/2021
*/

#include "main.h"
#include "calculos.h"
#include "files.h"

int main(void){
char nombreArchivo[50];
FILE * arch1, * arch2, * arch3;
int cont = 0,i,j, mod;
float temp, media, mediana, desvE, Rang, DistInt;
float *arr = malloc(100 * sizeof(float));

printf("Inserte el nombre del archivo a leer: ");
scanf("%s", nombreArchivo);

arch1 = fopen(nombreArchivo, "r");

for(cont = 0; cont < 100; cont ++){
fscanf(arch1, "%f, %f", &arr[cont], &arr[cont]); /*Extraer datos del archivo */
}

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

printf("\n ----Realizando calculos---\n");

mediana = median( arr);
media = mean( arr);
mod = mode(arr);

desvE = stdev(arr,media);
Rang = rango(arr);
DistInt = IQR(arr);

arch2 = fopen("TDA_Statistics.csv", "w");
arch3 = fopen("gráfico.csv", "w");

imprimirRes(mediana,media,mod,desvE,Rang,DistInt,arch2);
imprimirHist(arr,arch3);

free(arr);
fclose(arch1);
fclose(arch2);
fclose(arch3);
printf("Fin de proceso\n");
}
6 changes: 6 additions & 0 deletions TDA_Statistics.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Mediana: , 4.913121
Media: , -26119268360328445641621504.000000
Moda: , 5
Desviacion Estandar: , 4.913121
Rango: , 2.751640
Distancia intercuartíl: , 0.613733
Binary file added Vergara Examen 1 TDA Documentación.pdf
Binary file not shown.
74 changes: 74 additions & 0 deletions calculos.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
* Examen Parcial 1
* @ Taller de Desarrollo de Aplicaciones
* @ copyright 2021
* @ author: Vergara Mendoza Monica Ivette
* @ version 25/03/2021
*/
#include "main.h"
#include "calculos.h"
#include "files.h"

float median(float array[]){
float res;
res = ((array[44] + array[43])/2);
return res;
}

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

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


return res;
}

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

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

return res;
}

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

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

return res;
}

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

return res;
}
97 changes: 97 additions & 0 deletions calculos.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/*
* Examen Parcial 1
* @ Taller de Desarrollo de Aplicaciones
* @ copyright 2021
* @ author: Vergara Mendoza Monica Ivette
* @ version 25/03/2021
*/

//biblioteca de procesos

#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
* datos 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
* rango- consigue el rango total de los datos
* @params
* arr[]- los datos del csv (ya ordenados)
* @return
* res- el resultado del proceso
*/
EXTERN float rango(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 */
101 changes: 101 additions & 0 deletions data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
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
49,7.620810745
50,5.408775063
51,9.249027082
52,3.966756305
53,8.117753176
54,7.88119561
55,6.046796973
56,4.41112679
57,9.098134983
58,9.863904002
59,9.761802314
60,7.097391651
61,3.971288979
62,4.353357349
63,7.430117561
64,9.040893509
65,7.747518755
66,9.144150408
67,7.484194482
68,5.534374743
69,11.56408759
70,8.847246176
71,8.055825536
72,5.90986268
73,11.47067506
74,6.626437363
75,8.558101505
76,10.03325002
77,2.416308418
78,5.889250662
79,7.265120837
80,5.973586022
81,7.253980589
82,7.256455002
83,3.810614928
84,6.538020094
85,8.079135636
86,13.06712025
87,7.553353603
88,6.712603915
89,5.221458727
90,6.000437102
91,7.696862623
92,6.81870698
93,9.896107712
94,4.389514239
95,5.874243192
96,7.455989044
97,7.198366995
98,6.126639674
99,11.76199469
Loading