diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc01 b/fundamentos-programacion/PEC7/ejercicios/ejerc01 new file mode 100755 index 0000000..bd32c5f Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc01 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc01.c b/fundamentos-programacion/PEC7/ejercicios/ejerc01.c new file mode 100644 index 0000000..3305bc5 --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc01.c @@ -0,0 +1,36 @@ +#include + +// Definición de constantes +#define MAX_NUM 3 + +// Función recursiva funcRec +int funcRec(int intVec[MAX_NUM], int vectorLength) +{ + int result = 1; + + if (vectorLength > 0) + { + result *= intVec[vectorLength - 1]; + result *= funcRec(intVec, vectorLength - 1); + } + + return result; +} + +// Función principal (main) +int main() +{ + int numVec[MAX_NUM]; + int i; + + // Inicialización del vector numVec + for (i = 0; i < MAX_NUM; ++i) + { + numVec[i] = i + 1; + } + + // Llamada a funcRec y escritura del resultado + printf("Result: %d\n", funcRec(numVec, MAX_NUM)); + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc02 b/fundamentos-programacion/PEC7/ejercicios/ejerc02 new file mode 100755 index 0000000..08ca7ed Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc02 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc02.c b/fundamentos-programacion/PEC7/ejercicios/ejerc02.c new file mode 100644 index 0000000..574b81a --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc02.c @@ -0,0 +1,34 @@ +#include + +// Función recursiva funcRec +int funcRec(int n) +{ + int sum; + + if (n == 0) + { + sum = 0; + } + else + { + if (n % 2 == 0) + { + sum = n + funcRec(n - 1); + } + else + { + sum = funcRec(n - 1); + } + } + + return sum; +} + +// Función principal (main) +int main() +{ + // Llamada a funcRec con argumento 8 y escritura del resultado + printf("Result: %d\n", funcRec(8)); + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc03 b/fundamentos-programacion/PEC7/ejercicios/ejerc03 new file mode 100755 index 0000000..87a05b3 Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc03 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc03.c b/fundamentos-programacion/PEC7/ejercicios/ejerc03.c new file mode 100644 index 0000000..8de5c41 --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc03.c @@ -0,0 +1,27 @@ +#include + +// Función recursiva mystery +int mystery(int a, int b) +{ + if (b == 1) + { + return a; + } + else + { + return (2 * a + mystery(a, b - 1)); + } +} + +// Función principal (main) +int main() +{ + int x = 10; // Definición de x + int y = 4; // Definición de y + int result; // Definición de result + + result = mystery(x, y); // Llamada a mystery con argumentos x e y + printf("Result: %d\n", result); // Impresión del resultado + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc04 b/fundamentos-programacion/PEC7/ejercicios/ejerc04 new file mode 100755 index 0000000..db25065 Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc04 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc04.c b/fundamentos-programacion/PEC7/ejercicios/ejerc04.c new file mode 100644 index 0000000..11f7b4d --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc04.c @@ -0,0 +1,51 @@ +#include + +// Declaración de funciones +int rec(int num1, int num2); +int rec2(int num1, int num2); + +// Función recursiva rec +int rec(int num1, int num2) +{ + int n; + + if (num2 == 0) + { + n = num1; + } + else + { + n = rec(num2, num1 % num2); + } + + return n; +} + +// Función rec2 que utiliza rec +int rec2(int num1, int num2) +{ + int n; + + n = rec(num1, num2); + + return num1 * num2 / n; +} + +// Función principal (main) +int main() +{ + int num1, num2; + int result; + + printf("Input num1: "); + scanf("%d", &num1); + + printf("Input num2: "); + scanf("%d", &num2); + + result = rec2(num1, num2); + + printf("Result: %d\n", result); + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc05 b/fundamentos-programacion/PEC7/ejercicios/ejerc05 new file mode 100755 index 0000000..019cc37 Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc05 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc05.c b/fundamentos-programacion/PEC7/ejercicios/ejerc05.c new file mode 100644 index 0000000..d6eb0c6 --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc05.c @@ -0,0 +1,32 @@ +#include + +// Declaración de función recursiva +int rec(int num1, int num2, int n); + +// Función recursiva rec +int rec(int num1, int num2, int n) +{ + if (num1 >= num2) + { + n = rec(num1 - num2, num2, n + 1); + } + return n; +} + +// Función principal (main) +int main() +{ + int num1, num2, n = 0; + + printf("Input num1: "); + scanf("%d", &num1); + + printf("Input num2: "); + scanf("%d", &num2); + + int result = rec(num1, num2, n); + + printf("Result: %d\n", result); + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc06 b/fundamentos-programacion/PEC7/ejercicios/ejerc06 new file mode 100755 index 0000000..9bfd260 Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc06 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc06.c b/fundamentos-programacion/PEC7/ejercicios/ejerc06.c new file mode 100644 index 0000000..eafed6a --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc06.c @@ -0,0 +1,35 @@ +#include + +// Declaración de función recursiva +int x(int n); + +// Función recursiva x +int x(int n) +{ + if (n <= 1) + { + return n; + } + else + { + return x(n - 1) + x(n - 2); + } +} + +// Función principal (main) +int main() +{ + int n; + + n = 1; + + while (n <= 5) + { + printf("%d ", x(n)); + n = n + 1; + } + + printf("\n"); + + return 0; +} diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc07 b/fundamentos-programacion/PEC7/ejercicios/ejerc07 new file mode 100755 index 0000000..b9afdb2 Binary files /dev/null and b/fundamentos-programacion/PEC7/ejercicios/ejerc07 differ diff --git a/fundamentos-programacion/PEC7/ejercicios/ejerc07.c b/fundamentos-programacion/PEC7/ejercicios/ejerc07.c new file mode 100644 index 0000000..b5383ee --- /dev/null +++ b/fundamentos-programacion/PEC7/ejercicios/ejerc07.c @@ -0,0 +1,34 @@ +#include + +// Declaración de funciones +int rec(char char1, int n); +char codeToChar(int code); +int charToCode(char c); + +// Función recursiva rec +int rec(char char1, int n) { + if (char1 > 'a') { + n = rec(codeToChar(charToCode(char1) - 1), n + 1); + } + return n; +} + +// Función para convertir código a caracter +char codeToChar(int code) { + return (char)code; +} + +// Función para convertir caracter a código +int charToCode(char c) { + return (int)c; +} + +// Algoritmo principal +int main() { + char char1 = 'c'; + int n = 0; + + printf("Result: %d\n", rec(char1, n)); + + return 0; +}