PHP es un lenguaje con el cual podrás llevar a cabo todo tipo de proyectos y además desarrollar una excelente lógica de programación de forma muy sencilla.
Como siempre, la documentación será tu mejor amiga para encontrar cómo y por qué funciona cada parte del lenguaje para que tú te ocupes de desarrollar las mejores soluciones con código.
Ahora te reto a resolver estos ejercicios donde pondrás en práctica los conocimientos más simples haciendo uso de tu lógica y por supuesto, de PHP.
¡No olvides poner tus soluciones en la sección de aportes!
Con una condición…
En una escuela están almacenando los juguetes favoritos de los estudiantes de acuerdo a su edad en un lugar específico de la bodega de esta forma:
Quienes sean menores de 5 años tendrán sus espacios en la parte inferior de la bodega.
Quienes tengan entre 5 y 7 años tendrán sus espacios en la parte media de la bodega.
Quienes tengan más de 7 años tendrán sus espacios en la parte alta de la bodega.
Quienes no tengan registro de su edad aún tendrán un espacio de almacenamiento en la bodega de al lado.
Según una lista que contiene las edades de cada estudiante debes validar su edad y mostrar a través de un mensaje en dónde tendrán que almacenar sus juguetes.
Por ejemplo:
El estudiante con 4 años tendrá sus juguetes en la parte inferior de la bodega.El estudiante con 6 años tendrá sus juguetes en la parte media de la bodega.En estudiante con 10 años tendrá sus juguetes en la parte alta de la bodega.
Medio árbol de Navidad
Dibuja medio árbol de Navidad usando solo asteriscos como se indica en el siguiente ejemplo:
***************
La altura de este árbol debe ser dinámica, si le dices que tendrá 10 de alto, entonces tendrá 10 asteriscos.
Tip: Usa un ciclo para realizar esta actividad.
¡Nos vemos en la siguiente clase para empezar con nuestro proyecto!
Mira vos el str_repeat no lo conocia, podria haberme ahorrado 15 minutos jaja.
Bueno, ya aprendimos algo.. jajajajajaj
10. ¡Ponte a prueba!
Quise ponerme un poco más a prueba, y lograr un árbol completo, me costó y tuve que hacer varios bucles pero me salió al fin :).
(Todo feedback es bien recibido :))
Así se ve:
Aquí comparto el código .php:
<!DOCTYPEhtml><htmllang="es"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Retos</title></head><body><divclass="challenge-box"><formaction="index.php"method="post"><labelfor="">Ingresar edad:</label><br><inputtype="number"name="age"id=""><buttontype="submit">Validar</button></form><?phpfunctionageValidation($age){if($age<5){return"la parte inferior de la bodega.";}elseif($age>=5&&$age<=7){return"la parte media de la bodega.";}elseif($age>7){return"la parte alta de la bodega.";}else{return"la bodega de al lado.";}}$studentAge=$_POST["age"];echo"El estudiante con $studentAge años, tendrá sus juguetes en ".ageValidation($studentAge);?></div><divclass="challenge-box"style="margin-top:20px;"><formaction="index.php"method="post"><labelfor="">Ingresar tamaño deseado del árbol de navidad:</label><br><inputtype="number"name="treeSize"id=""><buttontype="submit">Generar árbol</button></form><?phpfunctiontreeGenerator($treeSize){$blankSpaces=$treeSize;$asterisks=1;for($i=0;$i<$treeSize;$i++){for($j=0;$j<($blankSpaces-1);$j++){echo' ';}for($k=0;$k<$asterisks;$k++){echo"*";}echo"<br>";$asterisks++;$blankSpaces--;}}$treeSize=$_POST["treeSize"];echo"Árbol generado de tamaño: $treeSize<br><br>";treeGenerator($treeSize);?></div></body></html>
Buenísimo te quedó.
Yo use el str_repeat para el arbolito
Seguí jugando e hice una versión de arbolito "cute". Cabe mencionar que por el tamaño de los iconos, la lógica del medio árbol se acopló, adicionando los espacios en blanco.
Acá el código:
<?php
functionarbolEnteroIcons(int $longitud):void{ $espaciosEnBlanco = $longitud; echo str_repeat(" ", $espaciosEnBlanco)."⭐ \n"; # Hojasfor($i=1; $i <= $longitud; $i++){ echo str_repeat(" ", $espaciosEnBlanco); echo str_repeat("🌳", $i)."\n"; $espaciosEnBlanco--;} # Base del árbol
echo str_repeat(" ",ceil($longitud/2)); echo str_repeat("💼",floor($longitud/2+1));} echo "¿De qué longitud quieres el arbolito? ";fscanf(STDIN,"%d", $longitud);//input por consola echo arbolEnteroIcons($longitud);
Esta genial !! 😮
wow 😮
Hola a Todos les comparto 3 formas distintas para imprimir el arbolito, con el agregado que el usuario puede elegir el número de hojas.
Orientado a Objetos :D
Reto: Con una condición:
Reto: Medio Árbol de Navidad:
Muy elegante companero !!
Muchas gracias por el aporte!
ejercicio 1 bodega
<?php
$edades =[4,5,7,10,'undefined age'];functionespacios_correspondientes_en_la_bodega(array $edades){for($i =0; $i <count($edades); $i++){if(is_int($edades[$i])){if($edades[$i]<5){ echo "<br>guarde sus juguetes en la parte inferior de la bodega.<br>";}elseif($edades[$i]>=5&& $edades[$i]<=7){ echo "<br>guarde sus juguetes en la parte media de la bodega.<br>";}else{ echo "<br>guarde sus juguetes en la parte alta de la bodega.<br>";}}else{ echo "<br>guarde sus juguetes en la bodega de al lado.<br>";}}}espacios_correspondientes_en_la_bodega($edades);
Si cambias <br> por . "\n" en la consola sale de arriba a abajo y no te sale el br. 😉
Tambien en tu funcion del pino, la altura la inicializas mal, porque si pones de alto 5, te lo hace de 6, porque la variable en el for la estas inicializando desde 0, entonces el sistema hace lo siguiente (0,1,2,3,4,5), si queres que se haga de la altura real como se la pasas, inicializa la variable en 1, asi te saldra de la altura que solicitas
ejercicio 1 :
$edades =array(3,4,7,7,6,'undefined age');foreach($edades as $edad){switch($edad){case $edad>0&&$edad<5: echo"al ser menor de 5 años van a la parte inferior de la bodega \n";break;case $edad>=5&&$edad<=7: echo "al tener entre 5 y 7 años sus juguetes se almacenan en la parte media de la bodega \n";break;case $edad>7&&$edad<100: echo "al ser mayor de 7 años sus juguetes se almacenan en la parte superior de la bodega \n";break;default: echo "Al no tener registrada su edad sus juguetes se guardaran en el almacen de al lado \n";break;}}
// Ejercicio 1$arr_edades =array(1,5,7,2,6,10,'undefined');functionejercicio1($array_edades){foreach($array_edades as $edad){switch($edad){case $edad >0&& $edad <5:concatPhrase($edad,"inferior");break;case $edad >=5&& $edad <7:concatPhrase($edad,"media");break;case $edad >=7:concatPhrase($edad,"alta");break;default: echo "Tiene un almacenamiento en la bodega de al lado.".PHP_EOL;break;}}}functionconcatPhrase($edad, $parte){ echo "El estudiante con $edad años tendrá sus juguetes en la parte $parte de la bodega.".PHP_EOL;}ejercicio1($arr_edades);
<?php
//funcion para llenar un arreglo de edades mediante//el numero de estudiantes ingresadofunctionllenarEdades($num){for($i=0;$i<$num;$i++){ $edad=rand(0,10);while($edad>0&& $edad<=7){ $edad=rand(0,10);} $edades[$i]=$edad;}return $edades;//devuelvo el arreglo de edades}functionmensaje($ed){//tomé a cero como si un estudiante no proporciona su nombreif($ed<5&& $ed>0){ echo "El estudiante con $ed años tendrá sus juguetes en la parte inferior de la bodega.<br>";}elseif($ed>=5&& $ed<=7){ echo "El estudiante con $ed años tendrá sus juguetes en la parte media de la bodega.<br>";}elseif($ed>7){ echo "El estudiante con $ed años tendrá sus juguetes en la parte alta de la bodega.<br>";}elseif($ed==0){ echo "El estudiante con $ed años tendrá sus juguetes en la bodega de a lado.<br>";}}//main $numNinios=rand(0,5);//genero aleatorio una cantidad de chicos $edarr=llenarEdades($numNinios);//lleno el vector de edadesprint_r($edarr);//muestra las edades ingresadasforeach($edarr as $value){//con un foreach despliego el mensaje para cada uno de los chicos mensaje($value);}
Para mi segundo ejercicio
<?php
$altitudF=rand(2,10);// genero numero de filas aleatorias entre 2 y 10
print_r($altitudF);//visualiza el numero generado
for($i=0;$i<$altitudF;$i++){//este for recorre las filas
for($j=0;$j<$i;$j++){
//este for imprime el numero de asteriscos dependiendo de la fila en la que se encuentre
echo '*';
}
echo '<br>';//hago salto de linea para cada fila, en ese caso se muestra info en HTML
}
```
Wow amigo, como puedes hacer algo tan sencillo algo tan complejo...
saludos tu pensamiento logico es grande.
<?php
$edad =8;if($edad>=0){if($edad==0){ echo "EL estudiante con"."\n".$edad."\n años tenrá sus juguetes en la bodega de al lado";}if($edad >0&&$edad <5){ echo "EL estudiante con"."\n".$edad."\n años tenrá sus juguetes en la parte inferior de la bodega";}if($edad>=5&& $edad<=7){ echo "EL estudiante con"."\n".$edad."\n años tenrá sus juguetes en la parte media de la bodega";}if($edad>7){ echo "EL estudiante con"."\n".$edad."\n años tenrá sus juguetes en la parte alta de la bodega";}}else{ echo "le edad no puede ser negativa";}?>
++EJERCICIO DEL ARBOL++
<?php
$altura =(int)readline("Introduce el número de pisos que debe tener tu arbol: ");if($altura >0){for($i=0; $i <= $altura ; $i++){ echo str_repeat("*",$i)."\n";}}else{ echo "Has elegido no dibujar ningún arbol.\n";}
Buenas noches, adjunto la resolución de los ejercicios...
<?php
$edades =[3,5,7,1,2,8,NULL,4,2,9,12];functiondondeGuardan($edades){ $lugar ="";foreach($edades as $edad){if($edad ===NULL){ $mensaje ="Aunque no tengas registro de edad, aún tienes un espacio en la bodega de al lado."; echo $mensaje ."\n";continue;}if($edad <5){ $lugar ="inferior";}if($edad >=5&& $edad <=7){ $lugar ="media";}if($edad >7){ $lugar ="alta";} $mensaje ="El estudiante con $edad años tendrá sus juguetes en la parte $lugar de la bodega."; echo $mensaje ."\n";}}dondeGuardan($edades);echo "\n\n------- LINEA DIVISORIA DE EJERCICIOS -------\n\n";functionmedioArbolito(int $altura){ $arbolito =""; echo "Altura ingresada: $altura\n\n";for($i =0; $i < $altura; $i++){if($i ==0){ $arbolito .="*";}else{ $arbolito .="\n"; $arbolito .=str_repeat("*", $i+1);}}return $arbolito;}echo medioArbolito(10);echo "\n";?>
++PROBLEMA DE LA ESCUELA++
<?php
functionubica($posicion, $array, $iteracion){ echo "El estudiante con $iteracion años, tendrá sus juguetes en la $array[$posicion]\n";}$ubicaciones =["parte inferior de la bodega.","parte media de la bodega.","parte alta de la bodega.","bodega de al lado."];$edades =[3,6,5,12,8];foreach($edades as $edad){if($edad <5){ubica(0,$ubicaciones, $edad);}elseif($edad >=5|| $edad <=7){ubica(1,$ubicaciones,$edad);}elseif($edad >7){ubica(2,$ubicaciones,$edad);}}
function asignardeposito($edad){
switch($edad){case($edad<5): echo "le corresponde la parte inferior de la bodega ya que cuenta con $edad de edad.";break;case($edad>=5&& $edad<7): echo "le corresponde la parte media de la bodega ya que cuenta con $edad de edad.";break;case($edad>=7): echo "le corresponde la parte alta de la bodega ya que cuenta con $edad de edad.";break;default: echo "le corresponde la bodega de al lado ya que no cuenta con edad.";break;}