Update calculos_varios exercise
This commit is contained in:
parent
755c552fa1
commit
4c2193b32b
@ -991,162 +991,6 @@ end algorithm
|
|||||||
|
|
||||||
5. Solución
|
5. Solución
|
||||||
|
|
||||||
En C:
|
|
||||||
|
|
||||||
```c
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
// 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
|
```alg
|
||||||
function calcularCostePintura(altura: real, anchura: real, precio_pintura: real): real
|
function calcularCostePintura(altura: real, anchura: real, precio_pintura: real): real
|
||||||
return altura * anchura * precio_pintura;
|
return altura * anchura * precio_pintura;
|
||||||
@ -1321,5 +1165,4 @@ end algorithm
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Volver arriba](#pr-1)
|
[Volver arriba](#pr-1)
|
||||||
|
Loading…
Reference in New Issue
Block a user