diff --git a/fundamentos-programacion/PR2/README.md b/fundamentos-programacion/PR2/README.md index 29bf690..9135f79 100644 --- a/fundamentos-programacion/PR2/README.md +++ b/fundamentos-programacion/PR2/README.md @@ -991,162 +991,6 @@ end algorithm 5. Solución -En C: - -```c - -#include - -// Función para calcular el coste total de pintura necesario para pintar una pared -float calcularCostePintura(float altura, float anchura, float precio_pintura) -{ - return altura * anchura * precio_pintura; -} - -// Función para calcular el consumo total de agua acumulado -float calcularConsumoAgua(float *consumo_actual, int *meses_consumo_actual, int *ano_consumo_actual) -{ - float consumo_mes; - int meses_a_introducir; - - printf("¿Cuántos meses quieres introducir? "); - scanf("%d", &meses_a_introducir); - - for (int i = 1; i <= meses_a_introducir; i++) - { - if (*meses_consumo_actual == 12) - { - *meses_consumo_actual = 1; - (*ano_consumo_actual)++; - } - else - { - (*meses_consumo_actual)++; - } - - printf("Introduce el consumo de agua del mes %d: ", *meses_consumo_actual); - scanf("%f", &consumo_mes); - *consumo_actual += consumo_mes; - } -} - -// Función para obtener el nombre del mes -char *calcularMesString(int mes) -{ - char *meses[] = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"}; - return meses[mes - 1]; -} - -// Acción para intercambiar los valores de dos números enteros -void intercambiarValores(int *a, int *b) -{ - if (*a != 0 && *b != 0) - { - int temp = *a; - *a = *b; - *b = temp; - } -} - -// Función para calcular la suma de los divisores de un número entero -int sumaDivisores(int n) -{ - int suma = 0; - - for (int i = 1; i <= n; i++) - { - if (n % i == 0) - { - suma += i; - } - } - - return suma; -} - -int main() -{ - int opcion; - float consumo_actual = 60; - int meses_consumo_actual = 6; - int ano_consumo_actual = 2021; - - do - { - printf("\n[+] Elige una opción:\n"); - printf("1. Calcular el coste total de pintura necesario para pintar una pared\n"); - printf("2. Calcular el consumo total de agua acumulado\n"); - printf("3. Intercambiar los valores de dos números enteros\n"); - printf("4. Calcular la suma de los divisores de un número entero\n"); - printf("5. Salir\n\n"); - printf("> "); - scanf("%d", &opcion); - - switch (opcion) - { - case 1: - { - float altura, anchura, precio_pintura; - printf("\n[+] Introduce la altura de la pared: "); - scanf("%f", &altura); - printf("[+] Introduce la anchura de la pared: "); - scanf("%f", &anchura); - printf("[+] Introduce el precio de la pintura por metro cuadrado: "); - scanf("%f", &precio_pintura); - - float coste_pintura = calcularCostePintura(altura, anchura, precio_pintura); - printf("\n[+] El coste total de pintura necesario para pintar la pared es de %.2f euros\n", coste_pintura); - break; - } - - case 2: - { - calcularConsumoAgua(&consumo_actual, &meses_consumo_actual, &ano_consumo_actual); - char *nombre_mes = calcularMesString(meses_consumo_actual); - printf("\n[+] El consumo total de agua acumulado hasta %s del año %d es de %.2f litros\n", nombre_mes, ano_consumo_actual, consumo_actual); - break; - } - - case 3: - { - int num1, num2; - printf("\n[+] Introduce el primer número entero: "); - scanf("%d", &num1); - printf("[+] Introduce el segundo número entero: "); - scanf("%d", &num2); - - intercambiarValores(&num1, &num2); - printf("\n[+] Los valores intercambiados son: %d y %d\n", num1, num2); - break; - } - - case 4: - { - int numero; - printf("[+] Introduce un número entero: "); - scanf("%d", &numero); - - int suma_divisores = sumaDivisores(numero); - printf("\n[+] La suma de los divisores de %d es: %d\n", numero, suma_divisores); - break; - } - - case 5: - printf("\n[!] Saliendo...\n"); - break; - - default: - printf("[!] Opción no válida\n"); - break; - } - - } while (opcion != 5); - - return 0; -} -``` - -En lenguaje algorítmico: ```alg function calcularCostePintura(altura: real, anchura: real, precio_pintura: real): real return altura * anchura * precio_pintura; @@ -1321,5 +1165,4 @@ end algorithm ``` - [Volver arriba](#pr-1)