En este post de programación en C (o ANSI C) te mostraré algunos ejemplos de cómo trabajar con porcentajes; pues aunque suene básico, en ocasiones tenemos problemas calculando descuentos o aumentos en porcentajes.
Te mostraré 4 cosas:
Es decir, trabajar con porcentajes, ya sea para obtener un porcentaje o para obtener el valor original.
Veamos el primer ejemplo. En este caso vamos a calcular el precio total después de aumentar un porcentaje. Por ejemplo, si un artículo cuesta 500
pesos pero tiene un aumento del 16 %
por el IVA.
En este caso solicitamos al usuario el valor y el porcentaje, luego aplicamos una fórmula e imprimimos el resultado:
#include <stdio.h>
int main()
{
float precioOriginal, porcentajeAumento;
printf("Ingresa el precio original: ");
scanf("%f", &precioOriginal);
printf("Ingresa el porcentaje de aumento: ");
scanf("%f", &porcentajeAumento);
float aumento = precioOriginal * (porcentajeAumento / 100);
float precioConAumento = precioOriginal + aumento;
printf("Precio con aumento: %0.2f", precioConAumento);
return 0;
}
Lo primero que hacemos es obtener valor con el porcentaje de aumento, que se logra multiplicando el precio original por lo que resulta de dividir el porcentaje entre cien.
Después, para obtener el precio con aumento en el lenguaje C, sumamos el aumento al precio original. Finalmente imprimimos los resultados. Presta atención al ejemplo, pues para calcular el descuento es lo mismo, pero se hace una resta.
Veamos el siguiente ejercicio. En este caso vamos a ver cómo saber el valor final después de aplicar un porcentaje de descuento. El código fuente queda así:
#include <stdio.h>
int main()
{
float precioOriginal, porcentajeDescuento;
printf("Ingresa el precio original: ");
scanf("%f", &precioOriginal);
printf("Ingresa el porcentaje de descuento: ");
scanf("%f", &porcentajeDescuento);
float descuento = precioOriginal * (porcentajeDescuento / 100);
float precioConDescuento = precioOriginal - descuento;
printf("Precio con descuento: %0.2f", precioConDescuento);
return 0;
}
Ahora fíjate en que en lugar de sumar, se resta (línea 12). Probemos el código, supongamos que un producto cuesta 700
pesos pero tiene un 20 %
de descuento, queda así:
Haciendo las operaciones mentalmente, si el 10 % de 700 es 70, y queremos el 20 % (dos veces 70) entonces es 140, y si restamos 140 de 700 efectivamente obtenemos 560.
Veamos un ejercicio interesante; se trata de que a partir del valor con aumento y el porcentaje de aumento, debemos sacar el valor original.
Por ejemplo, si un juego me costó 1700 pesos mexicanos (te estoy mirando a ti, Nintendo) con un aumento del 16 %, ¿Cuál era el valor sin aumento?
Para ello usamos una regla de 3 y sacamos la siguiente fórmula:
precio original = (100 * precio con aumento) / porcentaje real
En donde el porcentaje real es lo que resulta de sumar 100 al porcentaje de aumento. Pero mejor veamos el código:
#include <stdio.h>
int main()
{
float precioConAumento, porcentajeAumento;
printf("Ingresa el porcentaje de aumento: ");
scanf("%f", &porcentajeAumento);
printf("Ingresa el valor con el porcentaje aplicado: ");
scanf("%f", &precioConAumento);
// Sumamos el porcentaje de descuento a cien
float porcentajeReal = 100 + porcentajeAumento;
// Y ahora sacamos el valor real. Para ello...
float precioOriginal = (100 * precioConAumento) / porcentajeReal;
printf("Valor original: %0.2f", precioOriginal);
return 0;
}
Sé que debe haber una fórmula más sencilla por ahí, pero de este modo igualmente funciona.
Para comprobarlo, solo debemos hacer lo inverso: al resultado sumarle ese porcentaje, que en este caso sería como multiplicar 1465.52 * 1.16
y efectivamente resulta en 1700.0032
(entre más decimales, más precisión)
Para terminar esta serie de ejercicios de programación en C con porcentajes veamos lo inverso a lo anterior: a partir del valor con descuento y el porcentaje de descuento aplicado, obtener el valor original.
Por ejemplo, si compré un SSD a 800 pesos pero tenía un descuento del 18 %, ¿Cuál era el precio original, es decir, sin descuento?
Para ello aplicamos algo similar a lo anterior:
#include <stdio.h>
int main()
{
float precioConDescuento, porcentajeDescuento;
printf("Ingresa el porcentaje de descuento: ");
scanf("%f", &porcentajeDescuento);
printf("Ingresa el valor con el porcentaje aplicado: ");
scanf("%f", &precioConDescuento);
// Restamos el porcentaje de descuento a cien
float porcentajeReal = 100 - porcentajeDescuento;
// Y ahora sacamos el valor real. Para ello...
float precioOriginal = (100 * precioConDescuento) / porcentajeReal;
printf("Valor original: %0.2f", precioOriginal);
return 0;
}
Lo único que cambia en este caso es que restamos al porcentaje real, en lugar de sumar. Aquí la captura de que funciona:
A continuación dejaré los 4 ejercicios completos en un repositorio de GitHub. También te invito a leer más sobre programación en C.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.