# Ejercicios - for (3)

Nota: Los valores introducidos por el usuario se deben comprobar y, si los valores no son correctos, se debe indicar el motivo al usuario .

## for (3) 1 - Tabla de una fila con casillas de verificación

Escriba un programa que muestre una tabla de una fila con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (3) 1

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz (por ejemplo, c[1], c[2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla.
- Tercera página:
  - Para recoger la matriz se debe utilizar la función recogeMatriz() explicada en la lección de recogida de datos.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (3) 2 - Tabla cuadrada con casillas de verificación

Escriba un programa que muestre una tabla cuadrada con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (3) 2

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz de una dimensión (por ejemplo, c[1], c[2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla o el número de celdas.

- Tercera página:

  - Para recoger la matriz se debe utilizar la función recogeMatriz() explicada en la lección de recogida de datos.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (3) 3 - Tabla cuadrada con casillas de verificación (2)

Escriba un programa que muestre una tabla cuadrada con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas:

- En la primera página se solicita el tamaño de la tabla.
- En la segunda página se muestra la tabla (con un límite de 20 filas/columnas).
- En la tercera página se indican los números de las casillas de verificación marcadas.

Enlace a ejercicio For (3) 3

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz bidimensional en la que el primer índice indique el número de tabla y el segundo el número de celda (por ejemplo, c[1][1], c[2][2], ..., c[2][1], c[2][2], etc.).
  - Debe haber un control oculto (de tipo hidden) que contenga el tamaño de la tabla o el número de celdas.
- Tercera página:
  - Para recoger la matriz se debe utilizar una función recogeMatriz2() para recoger una matriz bidimensional, basada en la función recogeMatriz() explicada en la lección de recogida de datos. Por ejemplo:

        <?php
        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;
        }
        ?>

  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.)
  - Para escribir los índices recibidos se puede utilizar un bucle foreach.

## for (3) 4 - Tablas cuadradas con casillas de verificación

Escriba un programa que muestre varias tablas cuadradas con casillas de verificación en cada celda y cuente las casillas marcadas. El programa constará de tres páginas.

- En la primera página se solicita el número y tamaño de las tablas.
- En la segunda página se muestran las tablas (con un límite de 20 tablas/filas/columnas).
- En la tercera página se indican las casillas marcadas en cada tabla.

Enlace a ejercicio For (3) 4

### Comentarios

- Segunda página:
  - Las casillas de verificación deben tener como nombre elementos de una matriz bidimensional en la que el primer índice indique el número de tabla y el segundo el número de celda (por ejemplo, c[1][1], c[2][2], ..., c[2][1], c[2][2], etc.).
  - Debe haber dos controles ocultos (de tipo hidden) que contengan el número de tablas y el tamaño de las tablas.
- Tercera página:
  - Para recoger la matriz se puede utilizar la función recogeMatriz2() del ejercicio anterior.
  - Se debe comprobar que el contenido de la matriz (tanto índices como valores) es correcto (índices dentro del rango, valores on, etc.).

Esta obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 3.0 España.