Add PEC7 exercises

This commit is contained in:
Manuel Vergara 2024-06-28 01:07:50 +02:00
parent 6f7ac1cbcf
commit af47cbdde7
14 changed files with 249 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,36 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,34 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,27 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,51 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,32 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,35 @@
#include <stdio.h>
// 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;
}

Binary file not shown.

View File

@ -0,0 +1,34 @@
#include <stdio.h>
// 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;
}