Ejercicios (sin formularios) - Matrices de dimensión 1 - Enunciados
Estos ejercicios se pueden resolver utilizando únicamente matrices de dimensión 1, también llamadas vectores (aún así, el ejercicio 3 se propone resolverlo de dos maneras, con dos matrices de una dimensión o con una matriz de dos dimensiones).
Las imágenes de los animales han sido creadas por Customized Girl.
Sin bucles
Estos ejercicios no requieren el uso de bucles.
Matrices (1) 01 - Números
Escriba un programa que muestre una tirada de dado al azar y escriba en letras el valor obtenido.
Ayuda
Matriz
Cree una matriz con el texto de los diferentes valores ("uno", "dos", etc.) y utilice la variable que guarda el valor del dado al azar para elegir el texto a mostrar.
Matrices (1) 02 - Animales
Escriba un programa que muestre un animal al azar.
Ayuda
Matriz
Cree una matriz con los nombres de los ficheros ("ballena.svg", "caballito-mar.svg", etc.) y utilice la variable que guarda el valor del animal elegido al azar para elegir el texto a mostrar.
Poco a poco
Empiece con sólo tres o cuatro nombres de animales y añade el resto una vez haya comprobado que el programa funciona.
La cantidad de animales se puede obtener con la función count().
Matrices (1) 03 - Nombres de animales
Escriba un programa que muestre un animal al azar y su nombre.
Ayuda
Este ejercicio se puede hacer de dos maneras:
Con dos matrices de una dimensión
Cree dos matrices, una con los nombres de los ficheros ("ballena.svg", "caballito-mar.svg", etc.) y otra con los nombres de los animales ("Ballena", "Caballito de mar", etc.), en el mismo orden. Elija un valor del índice al azar para elegir tanto el dibujo como el texto a mostrar.
Con una matriz de dos dimensiones
Cree una matriz en la que cada elemento sea una matriz con el nombre del animal ("Ballena", "Caballito de mar", etc.) y el nombre del fichero ("ballena.svg", "caballito-mar.svg", etc.) como elementos. Elija un valor del índice al azar para elegir tanto el dibujo como el texto a mostrar.
Matrices (1) 04 - Gestos de manos
Escriba un programa que muestre un emoji de un gesto de manos al azar, con diferentes tonos de piel.
Ayuda
Las entidades numéricas que corresponden a diferentes gestos con las manos son: 128070, 128071, 128072, 128073, 128074, 128075, 128076, 128077, 128078, 128079, 128080, 128133, 128170, 128400, 128405, 128406, 128588, 128591, 129295, 129304, 129305, 129306, 129307, 129308, 129310, 129311, 129330.
Como estos valores no son consecutivos, no se pueden generar con un simple rand(). Los valores se pueden guardar en una matriz.
Los tonos de color de piel se consiguen con los modificadores Fitzpatrick 🏻 🏼 🏽 🏾 y 🏿 🏻 🏼 🏽 🏾 y 🏿.
Como estos valores sí que son consecutivos se pueden generar con un simple rand(), aunque también se pueden guardar en una matriz.
Hay varias formas de combinar los modificadores Fitzpatrick con emojis. En este ejercicio aparecen las secuencias más simples, en las que el modificador se escribe a continuación del carácter del emoji.
Así, al escribir 👍 👍 seguido de 🏾 🏾, es decir, 👍🏾 se convierte en 👍🏾.
Matrices (1) 05 - Hombres y mujeres haciendo deporte
Escriba un programa que muestre un emoji de un hombre o una mujer realizando actividades deportivas y que escriba la secuencia Unicode del emoji.
Ayuda
Las entidades numéricas que corresponden a actividades físicas son: 127939, 127940, 127946, 128675, 128692, 128693, 128694, 129336, 129337, 129341, 129342, 129495. Las entidades numéricas femenino / masculino son 9792 y 9794, respectivamente.
Como estos valores no son consecutivos, no se pueden generar con un simple rand(). Los valores se pueden guardar en dos matrices.
Las descripciones de los deportes son: "corriendo", "surfeando", "nadando", "remando", "pedaleando", "pedaleando en la montaña", "caminando", "dando volteretas", "haciendo malabares", "jugando al waterpolo", "jugando al balonmano", "escalando". Las descripciones de los géneros son "Hombre" y "Mujer".
Estos valores se pueden guardar en dos matrices.
Hay varias formas de obtener emojis de hombres y mujeres. En este ejercicio aparecen las secuencias de cuatro entidades, que utilizan primero el caracter de la actividad, después el carácter ZWJ U+200D, después el carácter U+2640 (signo femenino ♀) o U+2642 (signo masculino ♂) y por último el selector de variación 16 U+FE0F (para indicar que queremos la variante emoji, ya que los caracteres femenino / masculino tiene modo texto y modo emoji).
Así, al escribir 🚶 🚶 seguido de ‍ (carácter ZWJ), seguido de ♀ ♀ y terminado por ️ (VS16), es decir 🚶‍♀️ se convierte en 🚶♀️.
Con bucles for o foreach
Estos ejercicios están pensados para practicar tanto los bucles for como los bucles foreach.
Para ello, se puede resolver cada ejercicio dos veces. La primera vez, utilizando únicamente bucles for. La segunda vez, reescribiendo en los programas algunos de los bucles for por bucles foreach:
Los bucles que muestran los resultados se pueden reescribir con bucles foreach
Los bucles que realizan cálculos o cambian las matrices se pueden reescribir con bucles foreach si no requieren acceder simultáneamente a varias posiciones de las matrices.
Matrices (1) 11 - Tirada de dados
Escriba un programa que muestre una tirada de un número de dados al azar entre 2 y 7 e indique los valores.
Ayuda
Bucles
Cree la matriz con los valores con un bucle for que en cada iteración añada un nuevo valor.
Dibuje o liste los valores también con sendos bucles for.
Matrices (1) 12 - Negación de bits
Escriba un programa que muestre una secuencia aleatoria de 10 bits y su secuencia complementaria.
Ayuda
Con un bucle, cree una matriz de diez elementos con los valores aleatorios (0, 1, etc.)
Con otro bucle, cree otra matriz a partir de los valores de la primera. Si en la primera matriz el valor es es 0, en su complementaria es 1, y viceversa.
Con dos bucles más, escriba los valores de las dos matrices.
Matrices (1) 13 - Cambio de bits
Escriba un programa que muestre una secuencia aleatoria de 10 bits y la detección de cambios de bits consecutivos en la secuencia. Es decir:
si en la primera secuencia un bit es igual al bit siguiente, el bit correspondiente del resultado será 0
si en la primera secuencia un bit es distinto al bit siguiente, el bit correspondiente del resultado será 1
Ayuda
En el bucle que genera la matriz resultado se debe comparar cada valor de la secuencia inicial con el valor siguiente.
Ese bucle debe tener una iteración menos que el número de valores.
Matrices (1) 14 - Convertidor de binario a código de Gray
Escriba un programa que muestre una secuencia aleatoria de bits y su conversión a código de Gray.
Ayuda
En el código de Gray, el primer bit es el mismo que el del número inicial.
Los siguientes bits indican si los bits consecutivos son distintos, como en el ejercicio anterior.
Matrices (1) 15 - "Y" lógico
Escriba un programa que muestre dos secuencias aleatorias de 10 bits y el resultado de hacer la conjunción lógica ("y" lógico) bit a bit.
Ayuda
La conjunción lógica de dos valores da como resultado 1 si los dos valores son 1.
Matrices (1) 16 - El bit más común
Escriba un programa que muestre tres secuencias aleatorias de 10 bits y una cuarta secuencia que indique cuál es el bit más común en esa posición.
Ayuda
Si la suma de los valores en una posición es mayor que uno es que en esa posición hay más unos que ceros.
Matrices (1) 17 - Partida de dados
Escriba un programa que enfrente a dos jugadores tirando una serie de dados al azar entre 2 y 7 e indique el resultado. Los dados se comparan en orden (el primero con el primero, el segundo con el segundo, etc.) y gana el jugador que obtenga el número más alto.
Ayuda
Contadores
Defina tres contadores, uno para llevar la cuenta de partidas ganadas por cada jugador y otro para los empates.
Bucles
Una vez creadas las dos matrices de resultados, compare elemento a elemento usando un bucle for, aumentando el contador correspondiente.
Plurales
Un detalle del programa es que al decir los resultados dice "1 vez", pero "2 veces", etc.
Con bucles for y foreach
Estos ejercicios están pensados para practicar tanto los bucles for como los bucles foreach.
Los bucles que crean las matrices de datos se escribirán con bucles for
Los bucles que muestran los resultados se escribirán con bucles foreach
Los bucles que realizan cálculos o cambian las matrices se pueden escribir con bucles foreach si no requieren acceder simultáneamente a varias posiciones de las matrices.
Matrices (1) 21 - Eliminar dado
Escriba un programa:
que muestre primero una tirada de un número de dados al azar entre 1 y 10
que muestre a continuación un dado al azar.
que muestre de nuevo la tirada inicial, pero habiendo eliminado de la tirada los dados que coincidan con el dado suelto (si hay alguno).
Ayuda
Utilice la instrucción unset() para borrar los elementos de la matriz que coincidan con el valor a eliminar.
Matrices (1) 22 - Eliminar animal
Escriba un programa:
que muestre primero un grupo de entre 20 y 30 animales al azar (rango unicode: 128000 a 128060).
que muestre a continuación un animal al azar, pero que sea siempre uno de los anteriores.
que muestre de nuevo el grupo inicial, pero habiendo eliminado del grupo los animales que coincidan con el animal suelto (al menos habrá uno).