# Exámenes - Estadísticas de casillas

En este examen se debe crear un programa que dibuje una tabla rectangular de cajas de texto para escribir números enteros y que después diga cuál es el núemro más grande que se ha escrito y en qué posición estaba . El programa tendrá tres páginas:

- La primera pide el tamaño de la tabla rectangular.
- La segunda dibuja la tabla.
- La tercera dice cuál era el número más grande y dónde estaba.

Un ejemplo de programa puede probarse en la ventana siguiente

Enlace a examen Estadísticas de casillas

## Estadísticas de casillas - Comentarios

- Primera página
  - Puede ser una página html o una página php.
- Segunda página
  - El tamaño de la tabla debe comprobarse (que el número de filas y el de columnas sean números enteros entre el máximo y el mínimo).
  - Para recoger los datos se pueden gastar estas dos funciones:

        function recoge($var)
        {
            $tmp = (isset($_REQUEST[$var])) ? strip_tags(trim(htmlspecialchars($_REQUEST[$var]))) : '';
            if (get_magic_quotes_gpc()) {
                $tmp = stripslashes($tmp);
            }
            return $tmp;
        }

        function recogeMatriz2($var)
        {
            $tmpMatriz = array();
            if (isset($_REQUEST[$var]) && is_array($_REQUEST[$var])) {
                foreach ($_REQUEST[$var] as $indice => $fila) {
                    $tmp = strip_tags(trim(htmlspecialchars($indice)));
                    if (get_magic_quotes_gpc()) {
                        $tmp = stripslashes($tmp);
                    }
                    $indiceLimpio = $tmp;
                    if (is_array($fila)) {
                        foreach ($fila as $indice2 => $valor) {
                            $tmp = strip_tags(trim(htmlspecialchars($indice2)));
                            if (get_magic_quotes_gpc()) {
                                $tmp = stripslashes($tmp);
                            }
                            $indice2Limpio = $tmp;

                            $tmp = strip_tags(trim(htmlspecialchars($valor)));
                            if (get_magic_quotes_gpc()) {
                                $tmp = stripslashes($tmp);
                            }
                            $valorLimpio  = $tmp;

                            $tmpMatriz[$indiceLimpio][$indice2Limpio] = $valorLimpio;
                        }
                    }
                }
            }
            return $tmpMatriz;
        }

- Tercera página
  - En la tercera página sólo hace falta verificar que los valores son enteros.
  - Si el valor más alto está en varias casillas, sólo se indicará una de las posiciones.
- Opcional:
  - Se añadirán dos controles ocultos que contengan el tamaño de la tabla y en la tercera página se comprobará que los índices están dentro de los valores posibles.
  - En la tercera página se comprobará que se ha marcado alguna casilla.

Esta obra está bajo una licencia de Creative Commons.