Dos ejercicios con todo lo visto hasta ahora: condicionales y ciclos. El primero se ejecuta en la terminal con php cuotas.php; el segundo es una página, que se mira en el navegador con php -S localhost:8000.

Cómo trabajarlos

Resuelve cada uno antes de abrir la solución. Cuando funcione, cambia los valores del enunciado y comprueba que sigue dando bien.

Ejercicio 1. Pago en cuotas

Con estas variables:

<?php
$total = 100000;
$cuotas = 3;

El programa imprime una línea por cada cuota y, al final, la suma de lo pagado.

  • Todas las cuotas valen lo mismo, en pesos enteros (sin decimales).
  • Si la división no es exacta, lo que sobra se suma a la última cuota, para que lo pagado sea exactamente el total.
  • La suma de lo pagado se calcula con el ciclo, sumando cada cuota que se imprimió.

Salida con los valores de arriba:

Cuota 1: $33.333
Cuota 2: $33.333
Cuota 3: $33.334
Total pagado: $100.000

Con $total = 120000 y $cuotas = 6:

Cuota 1: $20.000
Cuota 2: $20.000
Cuota 3: $20.000
Cuota 4: $20.000
Cuota 5: $20.000
Cuota 6: $20.000
Total pagado: $120.000

Pista

intdiv($total, $cuotas) da el valor de cada cuota y $total % $cuotas lo que sobra. Dentro del for, un if reconoce la última vuelta.

Ejercicio 2. Tabla de precios

En precios.php, una tabla con el precio de 1 a 10 entradas de $3.500 cada una:

  • Columnas: cantidad de entradas, subtotal, descuento y total.
  • Desde 5 entradas, se descuenta un 10% del subtotal. Esa celda va en verde (text-green-700) y muestra el monto con un signo menos: -$1.750.
  • Bajo 5 entradas, la celda del descuento dice Sin descuento.
  • La fila de encabezados se escribe una sola vez; las 10 filas de datos las genera un for (…): con endfor;.

Lo que se ve en el navegador (resumido):

EntradasSubtotalDescuentoTotal
1$3.500Sin descuento$3.500
2$7.000Sin descuento$7.000
…………
5$17.500-$1.750$15.750
…………
10$35.000-$3.500$31.500

Pista

Los cálculos de cada fila van en un bloque <?php … ?> al comienzo de la vuelta, antes del <tr>. La celda del descuento se elige con if (…):, else: y endif;, como en mostrar u ocultar HTML.

Errores comunes

SíntomaCausaSolución
Total pagado: $33.334$pagado = 0 quedó dentro del forCréalo antes del ciclo
Las cuotas suman $99.999Falta sumar el resto a la última cuotaif ($i === $cuotas) y $monto += $resto
La tabla muestra una sola filaEl <tr> quedó fuera del forEl <tr> va entre for (…): y endfor;
Los encabezados se repiten en cada filaEl <thead> quedó dentro del forEscríbelo antes del ciclo
syntax error, unexpected end of fileFalta un endfor; o un endif;Cada for (…): e if (…): necesita su cierre