From 8db6faab6058ca20d598c79e3ffd9f95a79a5d55 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 15 Sep 2020 14:54:21 -0700 Subject: [PATCH 1/3] Practica terminada el jueves 10 de sep. Confusion con los repos --- Principal.c | 76 +++++++++++++++++++++++++++++++++++++++++++++ Sequences.c | 53 +++++++++++++++++++++++++++++++ TIME_FIBONACCI.dat | 30 ++++++++++++++++++ files.c | 58 ++++++++++++++++++++++++++++++++++ test | Bin 0 -> 17248 bytes 5 files changed, 217 insertions(+) create mode 100644 Principal.c create mode 100644 Sequences.c create mode 100644 TIME_FIBONACCI.dat create mode 100644 files.c create mode 100755 test diff --git a/Principal.c b/Principal.c new file mode 100644 index 0000000..f64eaaa --- /dev/null +++ b/Principal.c @@ -0,0 +1,76 @@ +#include +#include +#include + + +#include"Sequences.h" +#include"files.h" + +#define AMOUNT 30 +#define INDEX 0 +#define ITERATIVE 1 +#define RECURSIVE 2 +#define STATISTIC 1000.0 +#define COLUMNS 3 + +int main(void) +{ + long long int number; + size_t index; + long long int result = 0; + clock_t start, stop; + double cpu_time = 0; + size_t statistic = 0; + + long double buffer_matrix[AMOUNT][COLUMNS] = {0}; + + FILE * Archivo = NULL; + + Archivo = file_new("TIME_FIBONACCI.dat","w"); + + for(index = 0;index < AMOUNT;index++) + { + printf("%zu\n",index+1); + + /*Realizamos el calculo iterativamente*/ + start = clock(); + for (statistic = 0; statistic < STATISTIC; statistic ++){ + result = Sequences_sfibo(index); + + } + stop = clock(); + printf("Result: %lld ", result); + + cpu_time = ((double)(stop-start)) / CLOCKS_PER_SEC/STATISTIC; + + /*Guardamos el los valores en la matriz*/ + buffer_matrix[index][INDEX] = index; + buffer_matrix[index][ITERATIVE] = cpu_time*1e3; + + printf("\nSequential Fibo Time: %f ms\n",cpu_time*1e3); + + + /*Realizamos el calculo recursivamente*/ + start = clock(); + Sequences_rfibo(index); + stop = clock(); + + cpu_time = ((double)(stop-start))/CLOCKS_PER_SEC; + + /*Guardamos el los valores en la matriz*/ + buffer_matrix[index][RECURSIVE] = cpu_time; + + printf("Recursive Fibo Time: %f s\n",cpu_time); + + printf("\n\n"); + + } + + /*Para terminar, llamamos a nuestra funcion que escribira la matriz en el archivo.*/ + file_num_write(Archivo,COLUMNS,buffer_matrix,AMOUNT); + + printf("\n"); + + return 0; + +} diff --git a/Sequences.c b/Sequences.c new file mode 100644 index 0000000..dd85bdd --- /dev/null +++ b/Sequences.c @@ -0,0 +1,53 @@ +// Sequences.c +// +// +// Created by Rodrigo Garcia and Jesus Dominguez on 09/09/2020. +// + +#include"Sequences.h" + +/** + * Returns the value of the fibonacci sequence at index n calculated sequentially + * @param + * n (long long int): + * Index of the fibonacci sequence + * @return long long int value +*/ + +long long int Sequences_sfibo(long long int n) +{ + long long int i=0, j=1, temp; + long long int count; + + for(count = 0;count < n;count++) + { + temp = i + j; + i = j; + j = temp; + } + + return i; + +} + + +/** + * Returns the value of the fibonacci sequence at index n calculated recursively + * @param + * n (long long int): + * Index of the fibonacci sequence + * @return long long int value +*/ +long long int Sequences_rfibo(long long int n) +{ + if(n < 2) + { + return n; + } + + else + { + return Sequences_rfibo(n-2) + Sequences_rfibo(n-1); + } + +} diff --git a/TIME_FIBONACCI.dat b/TIME_FIBONACCI.dat new file mode 100644 index 0000000..7ebf633 --- /dev/null +++ b/TIME_FIBONACCI.dat @@ -0,0 +1,30 @@ +0 0.000004 0.000001 +1 0.000006 0.000000 +2 0.000008 0.000000 +3 0.000040 0.000001 +4 0.000053 0.000001 +5 0.000021 0.000002 +6 0.000025 0.000001 +7 0.000028 0.000001 +8 0.000032 0.000000 +9 0.000031 0.000001 +10 0.000033 0.000001 +11 0.000036 0.000001 +12 0.000039 0.000002 +13 0.000045 0.000003 +14 0.000045 0.000003 +15 0.000049 0.000005 +16 0.000052 0.000008 +17 0.000067 0.000013 +18 0.000058 0.000021 +19 0.000062 0.000033 +20 0.000064 0.000054 +21 0.000068 0.000087 +22 0.000071 0.000141 +23 0.000075 0.000238 +24 0.000086 0.000370 +25 0.000095 0.000639 +26 0.000095 0.000972 +27 0.000098 0.001602 +28 0.000102 0.002805 +29 0.000149 0.004783 diff --git a/files.c b/files.c new file mode 100644 index 0000000..d6d5f21 --- /dev/null +++ b/files.c @@ -0,0 +1,58 @@ +#include"files.h" + + +/** + * Instanciates a new file pointer identified via its name and mode. + * @param + * name (char *): + * Name of the file + * mode (char *): + * Mode of file to be opened {r, rb, a, ab, w, wb} + * + * @return FILE * opened_file. +*/ + +FILE * file_new(char *name, char *mode) +{ + FILE * file; + + file = fopen(name,mode); + + return file; +} + + +/** + * Writes a bidimensional buffer array into a file. + * @param + * file (FILE *): + * Storage file + * columns (size_t ): + * length of the buffer array + * buff [ ][columns] (long double): + * RAM matrix + * rows (size_t): + * width of the storage buffer + * + * @return void. +*/ + +void file_num_write(FILE * file, size_t columns, long double buff[] [columns], size_t rows) +{ + int count_rows,count_columns=0; + + for(count_rows = 0;count_rows < rows;count_rows++) + { + fprintf(file,"%.0Lf ",buff[count_rows][count_columns]); + count_columns++; + fprintf(file,"%Lf ",buff[count_rows][count_columns]); + count_columns++; + fprintf(file,"%Lf",buff[count_rows][count_columns]); + + count_columns=0; + + fprintf(file,"\n"); + } + + fclose(file); +} diff --git a/test b/test new file mode 100755 index 0000000000000000000000000000000000000000..74ba83fe78fce2d6b5cb5eb78851076a3d9f8700 GIT binary patch literal 17248 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 Date: Tue, 15 Sep 2020 15:07:51 -0700 Subject: [PATCH 2/3] Cambios en TIME_FIBONACCI.dat --- TIME_FIBONACCI.dat | 60 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/TIME_FIBONACCI.dat b/TIME_FIBONACCI.dat index 7ebf633..259c03b 100644 --- a/TIME_FIBONACCI.dat +++ b/TIME_FIBONACCI.dat @@ -1,30 +1,30 @@ -0 0.000004 0.000001 -1 0.000006 0.000000 -2 0.000008 0.000000 -3 0.000040 0.000001 -4 0.000053 0.000001 -5 0.000021 0.000002 -6 0.000025 0.000001 -7 0.000028 0.000001 -8 0.000032 0.000000 -9 0.000031 0.000001 -10 0.000033 0.000001 -11 0.000036 0.000001 -12 0.000039 0.000002 -13 0.000045 0.000003 -14 0.000045 0.000003 -15 0.000049 0.000005 -16 0.000052 0.000008 -17 0.000067 0.000013 -18 0.000058 0.000021 -19 0.000062 0.000033 -20 0.000064 0.000054 -21 0.000068 0.000087 -22 0.000071 0.000141 -23 0.000075 0.000238 -24 0.000086 0.000370 -25 0.000095 0.000639 -26 0.000095 0.000972 -27 0.000098 0.001602 -28 0.000102 0.002805 -29 0.000149 0.004783 +0 0.000006 0.000000 +1 0.000007 0.000001 +2 0.000009 0.000000 +3 0.000012 0.000000 +4 0.000015 0.000001 +5 0.000017 0.000000 +6 0.000021 0.000001 +7 0.000025 0.000000 +8 0.005396 0.000001 +9 0.000030 0.000000 +10 0.000032 0.000001 +11 0.000036 0.000002 +12 0.000037 0.000001 +13 0.000121 0.000002 +14 0.000042 0.000004 +15 0.000047 0.000006 +16 0.000050 0.000009 +17 0.000050 0.000015 +18 0.001032 0.000047 +19 0.000271 0.000047 +20 0.000115 0.000077 +21 0.000081 0.000121 +22 0.000371 0.001392 +23 0.000077 0.000308 +24 0.000089 0.000466 +25 0.000086 0.000673 +26 0.000103 0.001005 +27 0.000121 0.001895 +28 0.000104 0.003778 +29 0.000137 0.004062 From b4f907e5c635a4a1f6c561a56ebe9af3cd3ea924 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 15 Sep 2020 15:09:21 -0700 Subject: [PATCH 3/3] Cambios en TIME_FIBONACCI.dat 2 --- TIME_FIBONACCI.dat | 60 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/TIME_FIBONACCI.dat b/TIME_FIBONACCI.dat index 259c03b..7800176 100644 --- a/TIME_FIBONACCI.dat +++ b/TIME_FIBONACCI.dat @@ -1,30 +1,30 @@ -0 0.000006 0.000000 -1 0.000007 0.000001 -2 0.000009 0.000000 -3 0.000012 0.000000 -4 0.000015 0.000001 -5 0.000017 0.000000 -6 0.000021 0.000001 -7 0.000025 0.000000 -8 0.005396 0.000001 -9 0.000030 0.000000 -10 0.000032 0.000001 -11 0.000036 0.000002 -12 0.000037 0.000001 -13 0.000121 0.000002 -14 0.000042 0.000004 -15 0.000047 0.000006 -16 0.000050 0.000009 -17 0.000050 0.000015 -18 0.001032 0.000047 -19 0.000271 0.000047 -20 0.000115 0.000077 -21 0.000081 0.000121 -22 0.000371 0.001392 -23 0.000077 0.000308 -24 0.000089 0.000466 -25 0.000086 0.000673 -26 0.000103 0.001005 -27 0.000121 0.001895 -28 0.000104 0.003778 -29 0.000137 0.004062 +0 0.000009 0.000000 +1 0.000011 0.000000 +2 0.000014 0.000001 +3 0.000018 0.000001 +4 0.000024 0.000001 +5 0.000023 0.000001 +6 0.000031 0.000001 +7 0.000113 0.000001 +8 0.000041 0.000001 +9 0.000095 0.000002 +10 0.000043 0.000002 +11 0.000078 0.000001 +12 0.000052 0.000002 +13 0.000055 0.000003 +14 0.000058 0.000005 +15 0.000063 0.000007 +16 0.000067 0.000011 +17 0.000071 0.000017 +18 0.000075 0.000028 +19 0.000079 0.000056 +20 0.000113 0.000094 +21 0.000099 0.000176 +22 0.000111 0.000308 +23 0.000110 0.000292 +24 0.000114 0.000493 +25 0.000118 0.000870 +26 0.000122 0.001353 +27 0.000241 0.003185 +28 0.000149 0.004262 +29 0.000134 0.005731