Ejercicios (sin formularios) - Matrices de dimensión 1 - Soluciones

En esta página se muestran una parte de las soluciones de los ejercicios Matrices (1), concretamente el fragmento PHP, sin el principio ni el final de la página que se pueden dejar en fragmentos HTML.

Si lo prefiere, puede descargar unas posibles soluciones completas de estos ejercicios.

Sin bucles

Matrices (1) 01 - Números

La solución más sencilla consiste en guardar las cadenas "uno", "dos", "tres", etc. en una matriz, de manera que el valor de los índices corresponda con el significado de la cadena (es decir, que $nombre[1] = "uno", $nombre[2] = "dos", etc.)

Una solución más complicada es que la matriz contenga únicamente los nombres de las caras de los dados y los índices no correspondan con los valroes (es decir, que $nombre[0] = "uno", $nombre[1] = "dos", etc.). En este caso debemos ajustar el programa teniendo en cuenta que las palabras están "desplazadas" con respecto al valor del índice.

Matrices (1) 02 - Animales

Podemos guardar los nombres de los archivos en una matriz y hacer que escriba uno de ellos al azar.

<?php
$dibujos = [
    "ballena.svg", "caballito-mar.svg", "camello.svg", "cebra.svg", "elefante.svg",
    "hipopotamo.svg", "jirafa.svg", "leon.svg", "leopardo.svg", "medusa.svg",
    "mono.svg", "oso.svg", "oso-blanco.svg", "pajaro.svg", "pinguino.svg",
    "rinoceronte.svg", "serpiente.svg", "tigre.svg", "tortuga-marina.svg", "tortuga.svg",
];

$animal = rand(0, count($dibujos) - 1);

print "  <p><img src=\"img/animales/$dibujos[$animal]\" alt=\"Animal\" height=\"250\"></p>\n";
print "\n";
?>

En este caso, como todas las imágenes son imágenes SVG, podemos obviar la extensión en la matriz.

<?php
$dibujos = [
    "ballena", "caballito-mar", "camello", "cebra", "elefante",
    "hipopotamo", "jirafa", "leon", "leopardo", "medusa",
    "mono", "oso", "oso-blanco", "pajaro", "pinguino",
    "rinoceronte", "serpiente", "tigre", "tortuga-marina", "tortuga",
];

$animal = rand(0, count($dibujos) - 1);

print "  <p><img src=\"img/animales/$dibujos[$animal].svg\" alt=\"Animal\" height=\"250\"></p>\n";
print "\n";
?>

Matrices (1) 03 - Nombres de animales

Matrices (1) 04 - Gestos de manos

Matrices (1) 05 - Hombres y mujeres haciendo deporte

Con bucles for o foreach

Matrices (1) 11 - Tirada de dados

Matrices (1) 12 - Negación de bits

Matrices (1) 13 - Cambio de bits

Matrices (1) 14 - Convertidor de binario a código de Gray

Matrices (1) 15 - "Y" lógico

Matrices (1) 16 - El bit más común

Matrices (1) 17 - Partida de dados

Con bucles for o foreach

Matrices (1) 21 - Eliminar dado

<?php
$numero = rand(1, 10);
$numero = 1;

// Guardamos los valores de los dados en la matriz $dados
$dados = [];
for ($i = 0; $i < $numero; $i++) {
    $dados[$i] = rand(1, 6);
}

// Mostramos las imágenes de los dados obtenidos
if ($numero == 1) {
    print "  <h2>Tirada de $numero dado</h2>\n";
    print "\n";
} else {
    print "  <h2>Tirada de $numero dados</h2>\n";
    print "\n";
}

print "  <p>\n";
foreach ($dados as $dado) {
    print "    <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"80\" height=\"80\">\n";
}
print "  </p>\n";
print "\n";

// Guardamos el valor del dado a descartar
$descarta = rand(1, 6);

// Mostramos el dado a descartar
print "  <h2>Dado a eliminar</h2>\n";
print "\n";
print "  <p>\n";
print "    <img src=\"img/$descarta.svg\" alt=\"$descarta\" width=\"80\" height=\"80\">\n";
print "  </p>\n";
print "\n";

// Eliminamos el dado de la matriz
for ($i = 0; $i < $numero; $i++) {
    if ($dados[$i] == $descarta) {
        unset($dados[$i]);
    }
}

// Mostramos las imágenes de los dados restantes
print "  <h2>Dados restantes</h2>\n";
print "\n";
if (count($dados) == 0) {
    print "  <p>No quedan dados.</p>\n";
    print "\n";
} else {
    print "  <p>\n";
    foreach ($dados as $dado) {
        print "    <img src=\"img/$dado.svg\" alt=\"$dado\" width=\"80\" height=\"80\">\n";
    }
    print "  </p>\n";
    print "\n";
}
?>

Matrices (1) 22 - Eliminar animal

<?php
$numero = rand(20, 30);

// Guardamos los valores de los animales en la matriz $animales
$animales = [];
for ($i = 0; $i < $numero; $i++) {
    $animales[$i] = rand(128000, 128060);
}

// Mostramos las imágenes de los animales obtenidos
print "  <h2>$numero animales</h2>\n";

print "\n";
print "  <p style=\"font-size: 400%; margin: 0;\">\n";
foreach ($animales as $animal) {
    print "    &#$animal;\n";
}
print "  </p>\n";
print "\n";

// Guardamos el valor del animal a descartar
$descarta = $animales[rand(0, $numero - 1)];

// Mostramos el animal a descartar
print "  <h2>Animal a eliminar</h2>\n";
print "\n";
print "  <p style=\"font-size: 400%; margin: 0;\">\n";
print "    &#$descarta;\n";
print "  </p>\n";
print "\n";

// Eliminamos el animal de la matriz
for ($i = 0; $i < $numero; $i++) {
    if ($animales[$i] == $descarta) {
        unset($animales[$i]);
    }
}

// Mostramos las imágenes de los animales restantes
print "  <h2>Quedan " . count($animales) . " animales</h2>\n";
print "\n";
if (count($animales) == 0) {
    print "  <p>No quedan animales.</p>\n";
    print "\n";
} else {
    print "  <p style=\"font-size: 400%; margin: 0;\">\n";
    foreach ($animales as $animal) {
        print "    &#$animal;\n";
    }
    print "  </p>\n";
}
?>