A practicar

A practicar con IF, ELSE y WHILE

A practicar Desarrollo

Volvemos con nuestra sección de A practicar… en la que ponemos en práctica todo lo visto anteriormente. Una vez ya tenemos las primeras armas para implementar estructuras de control, vamos a practicar con IF, ELSE y WHILE, y utilizarlas para nuestro próximo reto. Pero, antes, veamos una posible solución al reto de hace dos semanas.

Solución al reto anterior

En el reto anterior buscábamos construir un pequeño programa para calcular el precio final de un producto en base a unas diferentes especificaciones. Veamos el código propuesto para su solución:

<?php

// Producto 1
$precioBase = 14.65;
$porcentajeImpuestos = 21.0 / 100;
$costeEnvio = 3.0;
$porcentajeDescuento = 0;

$descuentoAplicado = $precioBase * $porcentajeDescuento;
$precioSinImpuestos = $precioBase + $costeEnvio - $descuentoAplicado;
$precioFinal = $precioSinImpuestos + ($precioSinImpuestos * $porcentajeImpuestos);

echo 'El primer precio es: ' . $precioFinal . ' €<br>';

// Producto 2
$precioBase = 14.65;
$porcentajeImpuestos = 22.0 / 100;
$costeEnvio = 0;
$porcentajeDescuento = 5.0 / 100;

$descuentoAplicado = $precioBase * $porcentajeDescuento;
$precioSinImpuestos = $precioBase + $costeEnvio - $descuentoAplicado;
$precioFinal = $precioSinImpuestos + ($precioSinImpuestos * $porcentajeImpuestos);

echo 'El segundo precio es: ' . $precioFinal . ' €';
?>

Vamos con el primer producto. En las líneas 4, 5, 6 y 7 definimos todos los valores referentes a este producto, es decir, indicamos cuál es el precio base, el porcentaje de impuestos ya calculado (o sea, dividido por 100, pues colocar el símbolo de porcentaje no haría nada aquí), el coste de envío y el porcentaje de descuento, que en este caso es 0 y podríamos haberlo omitido.

Como podemos ver, hemos colocado los números con decimales debido a las divisiones que hay en los porcentajes principalmente. En PHP esto no es necesario, pues el propio PHP se encargaría de transformar el tipo entero a decimal, pero en otros lenguajes sería obligatorio si no querríamos ver incorrecciones, así que los hemos colocado.

En la línea 9 hemos calculado el descuento aplicado multiplicando el precio base por el porcentaje de descuento. De esta forma, obtendremos en este caso un 0, pues no hay descuento. En la línea 10 hemos calculado el precio antes de impuestos sumando el precio base y el coste de envío y restando el descuento aplicado. Finalmente, en la línea 11 calculamos el precio final, que sería el precio sin impuestos más los impuestos aplicados que se calculan multiplicando este precio por el porcentaje de impuestos.

Para acabar, en la línea 13 mostramos por pantalla cuál es el precio con el formato que indicamos y colocando un salto de línea final.

El segundo producto, por tanto, no requiere mucha más complicación. Utilizamos exactamente el mismo código para calcularlo todo pero cambiando los datos iniciales y el texto de la cadena a mostrar por pantalla.

Como veis, gracias al uso de variables tenemos que las líneas 9, 10 y 11 son exactamente iguales a las líneas 21, 22 y 23, pues hacen lo mismo pero con distintos valores iniciales. En el futuro veremos cómo evitar duplicar el código, pues si tuviéramos que calcular más precios sería engorroso tener que repetirlo de nuevo. Además de que, en caso de querer cambiar algo (añadir un coste por peso, por ejemplo), deberíamos cambiarlo todas las veces que aparece. Pero todo ello lo veremos más adelante.

Siguiente reto

Las estructuras de control condicionales e iterativas entran en escena en nuestro siguiente reto, que va complicándose en su planteamiento pero sigue siendo muy sencillo en la programación si vas interiorizando todo lo aprendido en artículos anteriores. Por tanto, vamos a tener que practicar con IF, ELSE y WHILE en nuestro próximo reto. Aquí lo tenemos:

A practicar 1.0.3

Queremos construir un programa que nos diga si un número entero positivo es o no es primo. Recordemos que un número primo es aquel que sólo es divisible por sí mismo y por 1.

Dado un número, el programa nos debe mostrar por pantalla si es número primo o si no lo es. Para ello, en algún momento se deberán utilizar las estructuras de control vistas hasta ahora.

Recordad que podéis testear el código en sitios como phptester y que podéis dejar vuestras dudas o resultados en los comentarios. Para ello, antes debéis registraros. Empezad ya a practicar con las estructuras de control.

Deja una respuesta