# Ejercicios - Repaso (1)

Nota:

- Los valores introducidos por el usuario se deben comprobar y, si los valores no son correctos, se debe indicar el motivo al usuario.
- Tenga en cuenta que un usuario puede acceder al programa php directamente enviando los datos que desee (por ejemplo, datos más largos que la longitud permitida en el formulario)

## Repaso 1 - Convertidor de bytes

Escriba un convertidor de bytes a kilobytes, megabytes y gigabytes que conste de dos páginas.

- En la primera página, se solicita el número de bytes.
- En la segunda página se muestra el resultado en kilobytes, megabytes y gigabytes (mostrando únicamente las unidades necesarias)

Enlace a ejercicio Repaso (1) 1

### Comentarios

- Para formatear el resultado (con separador de miles y de parte entera y decimal), se puede utilizar la función number_format().
- Ejemplos de resultados:
  - 1234567890 bytes son 1 GB, 153 MB, 384 KB y 722 bytes.
  - 1074791424 bytes son 1 GB, 1 MB y 1 KB.
  - 10241024 bytes son 9 MB y 785 KB.
  - 10240 bytes son 10 KB.
  - 10241 bytes son 10 KB y 1 byte.
  - 10242 bytes son 10 KB y 2 bytes.
  - 1 byte es 1 byte.
  - 0 bytes son 0 bytes.

## Repaso 2 - Contador de días

Escriba un contador de días que conste de tres páginas.

- En la primera página, se solicita cuántas semanas se van a mostrar en la segunda página.
- En la segunda página se muestra una tabla con tantas filas (semanas) como haya indicado el usuario.
- En la tercera y última página se indica cuántas casillas se han marcado en total y en cada semana.

Enlace a ejercicio Repaso (1) 2

## Repaso 3 - Cálculos estadísticos

Escriba una calculadora de datos estadísticos que conste de tres páginas.

- En la primera página se solicita el número de números a introducir.
- En la segunda página se solicitan esos números y las operaciones correspondientes (suma, media, mayor, menor).
- En la tercera página se muestran los resultados.

Enlace a ejercicio Repaso (1) 3

### Comentarios

- El máximo y el mínimo se pueden obtener mediante las funciones max() y min().

## Repaso 4 - Convertidor de divisas

Escriba un convertidor de divisas que conste de dos páginas.

- En la primera página se solicita la cantidad y las divisas.
- En la segunda página se muestra el resultado.

Enlace a ejercicio Repaso (1) 4

Nota: La cotización es fija. En el ejemplo se han utilizado las siguientes cotizaciones:

- 1 euro = 1,31481 dólares USA
- 1 euro = 0,89807 libras esterlinas
- 1 euro = 132,113 yenes
- 1 euro = 166,386 pesetas

## Repaso 5 - Cálculos estadísticos 2

Escriba una calculadora de datos estadísticos que conste de una sola página:

- La página solicita los números y las operaciones correspondientes (suma, media, mayor, menor), con posibilidad de aumentar o reducir el número de campos de entrada disponibles.
- Si los datos no son válidos, se solicitan de nuevo indicando los datos no válidos.
- Si los datos son válidos, se muestran los datos y los resultados.

Enlace a ejercicio Repaso (1) 5

### Comentarios

- Este ejercicio es similar al ejercicio 3 de Validación
- Las casillas de verificación marcadas deben mantenerse marcadas si hay errores en los datos al enviar, al aumentar o al reducir el número de valroes.

## Repaso 6 - Calculadora de la letra del DNI

Escriba una calculadora de la letra del DNI mediante dos páginas.

- En la primera página se solicita el número del DNI.
- En la segunda página se muestra la letra correspondiente. Recuerde que la letra se obtiene calculando el resto de la división del número del DNI por 23. A cada resultado le corresponde una letra: 0=T; 1=R; 2=W; 3=A; 4=G; 5=M; 6=Y; 7=F; 8=P; 9=D; 10=X; 11=B; 12=N; 13=J; 14=Z; 15=S; 16=Q; 17=V; 18=H; 19=L; 20=C; 21=K; 22=E.

Enlace a ejercicio Repaso (1) 6

### Comentarios

- Para mostrar la letra, se puede definir una cadena y mostrar el carácter deseado accediendo como si fuera una matriz:

      <?php
      $letrasDNI = 'TRWAGMYFPDXBNJZSQVHLCKE';
      print "<p>Si el resto es 5, la letra es la ".$letrasDNI[5]."</p>";
      ?>
  | Si el resto es 5, la letra es la M

Esta obra está bajo una licencia de Creative Commons.