Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Página reemplazada por « {{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}} <br /> {{ManuelRomero/Arrays/Ejercicios}}»)
 
(37 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
__NOEDITSECTION__
+
 
{|cellpadding="5" cellspacing="6" style="width:60%;background:#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF; center"
+
| width="100%" valign="top" style="padding: 0; margin:0px;" |
+
<div style="border-radius:25px 25px 25px 25px; float: left;font-size:20px;text-align:center;background-color:Chocolate; padding:2px;">
+
[[Usuario:ManuelRomero/NewPHP/Distancia|Volver]]
+
</div>
+
|}
+
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}
 +
 
<br />
 
<br />
  
 
+
{{ManuelRomero/Arrays/Ejercicios}}
==Acciones básicas sobre arrays==
+
*En esta sección son  de accions básicas sobre arrays.
+
 
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio1|Ejercicio 1 : Recorrer un array básico]]
+
 
+
{{Actividad|Title=Ejercicio 1: Recorrer una array básico|
+
Crea un array indexado con 5 valores de ciudades y recórrelo con un for
+
}}
+
 
+
<!--
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio2 | Solución]]</font>
+
-->
+
<hr/>
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio2|Ejercicio 2 : Crear un array de notas]]
+
 
+
{{MRM_Actividad|Title=Ejercicio 2 : Crear un array de notas|
+
Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores
+
estadísticos de la  media, máxima y mínima
+
}}
+
<!--
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio3 | Solución]]</font>
+
<hr/>
+
-->
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio3|Ejercicio 3 : Usando funciones de arrays]]
+
 
+
{{MRM_Actividad|Title=Ejercicio 3 : Usando funciones de array|
+
Repite el ejercicio anterior usando funciones para todas las acciones
+
*inicializar el array
+
*Obtener el máx, min, la suma  y el número de elementos
+
*Mostrar información
+
}}
+
 
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio4|Ejercicio 4 : Imágenes aleatorias]]
+
{{MRM_Actividad|Title=Ejercicio 4 : Imágenes aleatorias|
+
Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria
+
 
+
{{Tip|Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
+
<source lang=html5>
+
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
+
</source>
+
}}
+
 
+
<source lang=php>
+
$array=[
+
"https://es.wikieducator.org/images/3/3d/Ajax_cliente_servidor.png",
+
 
+
"https://es.wikieducator.org/images/7/7b/Funcionamiento_ajax.png",
+
"https://es.wikieducator.org/images/a/aa/Angular_app_base.png",
+
"https://es.wikieducator.org/images/3/3d/Docker_distancia_1.png",
+
 
+
"https://es.wikieducator.org/images/4/4e/Opcion_Instalar.png",
+
"https://es.wikieducator.org/images/a/ab/AplicacionWeb.png",
+
"https://es.wikieducator.org/images/e/e4/Red3.png",
+
"https://es.wikieducator.org/images/f/f2/DACTW.png",
+
"https://es.wikieducator.org/images/e/e5/M3_web.png",
+
"https://es.wikieducator.org/images/a/a6/Ficheros.jpeg"];
+
);
+
</source>
+
<!--
+
{{Plegable|hide|Posible solución|
+
<source lang=php>
+
<?php
+
//Inicializamos el array de imágenes
+
$array=[
+
"https://es.wikieducator.org/Archivo:Ajax_cliente_servidor.png",
+
"https://es.wikieducator.org/Archivo:Funcionamiento_ajax.png",
+
"https://es.wikieducator.org/Archivo:Angular_app_base.png",
+
"https://es.wikieducator.org/Archivo:Docker_distancia_1.png",
+
"https://es.wikieducator.org/Archivo:Opcion_Instalar.png",
+
"https://es.wikieducator.org/Archivo:AplicacionWeb.png",
+
"https://es.wikieducator.org/Archivo:Red3.png",
+
"https://es.wikieducator.org/Archivo:DACTW.png",
+
"https://es.wikieducator.org/Archivo:M3_web.png",
+
"https://es.wikieducator.org/Archivo:Ficheros.jpeg"
+
];
+
$ind1 = rand(0, count($array) - 1);
+
$ind2 = rand(0, count($array) - 1);
+
$ind3 = rand(0, count($array) - 1);
+
?>
+
<!DOCTYPE html>
+
<!--
+
To change this license header, choose License Headers in Project Properties.
+
To change this template file, choose Tools | Templates
+
and open the template in the editor.
+
-->
+
<html>
+
    <head>
+
        <meta charset="UTF-8">
+
        <META HTTP-EQUIV=Refresh CONTENT="3; URL=index.php">
+
        <title>Imágenes</title>
+
    </head>
+
    <body>
+
        <img src="<?php echo $array[$ind1] ?>" alt="">
+
        <img src="<?php echo $array[$ind2] ?>" alt="">
+
        <img src="<?php echo $array[$ind3] ?>" alt="">
+
    </body>
+
</html>
+
</source>
+
 
+
}}
+
-->
+
}}
+
<!--
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio4 | Solución]]</font>
+
<hr/>
+
-->
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio5|Ejercicio 5 : Tienda de verduras]]
+
 
+
{{MRM_Actividad|Title=Ejercicio 5 : Tienda de verduras|
+
Dada una tienda de verduras con los siguientes productos
+
$productos = [
+
    'lechuga' => ['unidades' => 200,
+
                  'precio' => 0.90],
+
    'tomates' =>['unidades' => 2000,
+
                'precio' => 2.15],
+
    'cebollas' =>['unidades' => 3200,
+
                  'precio' => 0.49],
+
    'fresas' =>['unidades' => 4800,
+
                'precio' => 4.50],
+
    'manzanas' =>['unidades' => 2500,
+
                  'precio' => 2.10],
+
];
+
*Realiza una aplicación con un formulario para poder comprar productos
+
*Tras la compra se visualizará la factura del producto siempre que haya unidades
+
*Se mostrará las unidades que quedan de cada producto
+
}}
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio6|Ejercicio 6 : Accesos de usuario]]
+
 
+
{{MRM_Actividad|Title=Ejercicio 6 : Accesos de usuario|
+
;Creamos una aplicación dónde los usuarios se identifican (una caja de texto para identificarse)
+
:Luego iremos contando cada vez que un usuario hace un click
+
<!--
+
{{Plegable|hide|Posible solución|
+
<source lang=php>
+
<?php
+
//Si hemos dado a enviar leemos el nombre de usuario y los accesos anteriores (Array nombre:entero acceso
+
if (isset($_POST['enviar'])) {
+
    $nombre = $_POST['nombre'];
+
    $accesos = $_POST['accesos']; //La primera vez estará vacíon
+
    $accesos[$nombre] ++; //Agregamos en el array el nombre y el acceso actual
+
                          //Esta instrucción si no existe ese nombre en el array lo crea
+
                          //Si sí que existe, accede a él e incremente a uno su contenido
+
                          //              (nombre es el índice del array)
+
}
+
?>
+
<!doctype html>
+
<html lang="en">
+
    <head>
+
        <meta charset="UTF-8">
+
        <title>Document</title>
+
    </head>
+
    <body>
+
        <form action="index.php" method=POST>
+
 
+
            Usuario <input type="text" name="nombre" id="">
+
            <?php
+
            //Mostramos el array
+
            foreach ($accesos as $nombre => $acceso)
+
                echo "<input type='hidden' name= accesos[$nombre]  value = $acceso>\n"
+
                ?>
+
 
+
            <input type="submit" value="Acceder" name="enviar">
+
        </form>
+
        <?php
+
        //Guardamos el array para leerlo la próxima vez
+
        if (isset($accesos))
+
            foreach ($accesos as $nombre => $acceso)
+
                echo "<h1> $nombre : $acceso </h1>\n";
+
        ?>
+
    </body>
+
</html>
+
</source>
+
 
+
}}
+
-->
+
}}
+
 
+
 
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Arrays/ejercicios/ejercicio7|Ejercicio 7 : Array multinivel]]
+
 
+
{{MRM_Actividad|Title=Ejercicio 7 : Array multinivel|
+
;Vamos a realizar un recorrido de un array asociativo de varios niveles.
+
:Realizaremos un estudio del array y luego lo recorreremos
+
 
+
;Dado un fichero que contiene un array asociativo
+
;El array contiene información de cantantes y de cada cantante su nombre, su década y canciones que tiene
+
:Se trata que trabajes en dos aspectos que se complementas
+
#Entender y explicar el contenido del array, es decir si es asociativo o indexado y los indices que tiene. Si una posición es un array a su vez procedemos a explicarlo igualmente
+
#Posteriormente lo recorreremos mostrando información de los cantantes y para cantante sus canciones
+
::Para hacer esta parte facilito un pequeño css y consistiría en aplicar el div cantante y el div canciones }}
+
* Puedes ver este ejercico en esta url de donde está adaptado http://www.tecn.upf.es/~ocelma/cpom/practicas/ es el ejercicio 12
+
 
+
;Ficheros
+
 
+
[http://es.wikieducator.org/images/7/71/Artista.pdf  Artista.pdf] Este fichero es un css para el ejercicios
+
[[/Usuario:ManuelRomero/php/dwes/B2T1/arrays/ejercicios|Contenido del ArrayAsociativo.php]]
+
 
+
;Para ver el array una buena forma es cargarlo en un fichero php y hacer o bien un '''''var_dump''''' o bien un '''''print_r'''''
+
 
+
<source lang=php>
+
<?php
+
 
+
require_once ("datos.php");
+
 
+
var_dump( $artistas );
+
 
+
 
+
?>
+
</source>
+
*A partir de él podemos mostrar la siguiente imagen que describe el aray
+
[[Imagen:arrayComplejo.png]]
+
*Observamos que en primera instancia tengo un array asociativo  de 6 índices cuyos valores son
+
'''''185711, 32841, 84062, 84430, 84221, 118504'''''
+
*Cada posición tiene como valor un array asociativo de 4 posiciones cuyos índices tiene los valores
+
'''''name decades link canciones'''''
+
*La posición '''''name''''' directamente tiene un valor string que es el nombre del artista
+
*La posición '''''decades'''''  tiene un valor string que es la década de ese cantante
+
*La posición '''''link''''' tiene un valor string que es un url a una página con información sobre el artista
+
*La posición '''''canciones''''' es un array indexado de tantas posicione como canciones tenga el artista
+
*Cada posición del array indexado canciones  es un array asociativo con dos índices
+
'''''title link'''''
+
*La posición '''''title''''' es un string con el título de la canción
+
*La posición '''''link''''' es un string con un url donde se puede oir la canción (Actualmente ya no están alojadas en esa posición)
+
}}
+
<!--
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Arrays/Ejercicios/Ejercicio1 | Solución]]</font>
+
<hr />
+
-->
+

Última revisión de 19:00 15 nov 2024




Acciones básicas sobre arrays

  • En esta sección son de accions básicas sobre arrays.

Ejercicio 1 : Recorrer un array básico



Icon activity.jpg

Ejercicio 1: Recorrer una array básico

  • Crea un array indexado con 5 valores de países y recórrelo con un for
  • Ahora crea un array con 5 países como índice y sus correspondiente capitales como valores
  • Después recorrelo con un foreach






Ejercicio 2 : Manipulando un array



Icon activity.jpg
Ejercicio 2: Manipulando un array
Asignando y elmininando valores
  • Creamos un array asingnándole 5 valores de forma indexada
  • Asigna valores entero, cadenas, y la quinta posición que sea otro array de tres elementos
  • Lo visualizamos con un var_dump
  • Agregamos valores en posiciones 15 y 30
  • Lo visualizamos con un var_dump
  • Eliminamos los índices vacíos de forma que quede compacto (sin usar funciones)
    • Es decir las desaparecen las posiciones 15 y 30
    • Sus valores se mantienen en las posicones 5 y 6




Ejercicio 3 : Crear un array de notas



Icon activity.jpg
Ejercicio 3 : Crear un array de notas

Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores estadísticos de la media, máxima y mínima

  • Hazlo de forma algorítmica, sin usar funciones de arrays




Ejercicio 4 : Usando funciones de arrays



Icon activity.jpg
Ejercicio 4 : Usando funciones de array

Repite el ejercicio anterior usando funciones para todas las acciones

  • Crea un array de notasde 15 alumnos Inicializadas con 0
  • Asiga a cada nota un valor aleatorio entre 5 y 10
  • Visualiza el array y verfica sus valores
  • Obtener la nota máxima, la mínima y la media del array
Ahora continuamos usando más funciones vistas en la teoría
  • Crea otro array de notas de 15 alumnos con notas entre 0 y 5
  • Junta los dos array en uno solo
  • Vuelve a realizar las acciones anteriores (max, min y media)
  • Recorre el array con un foreach
  • REaliza el recorrido con las funciones de recorrido especificadas anteriormente, mostrando en cada caso el ínice y valor (next, reset, current, key)
  • Busca el primer 10 en el array y devuelve su posición
  • Confirma si hay un 7 y un 4 como valores dentro del array
  • Ordena el array ascendentemente y muéstralo
  • Ordena el array descendentemente y muéstralo
  • Elimina valores repetidos y muéstralos




Ejercicio 5 : Imágenes aleatorias



Icon activity.jpg
Ejercicio 5 : Imágenes aleatorias
  • Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria.
  • Es muy importante que las 3 imágenes no se puedan repetir, que sean diferentes
Icon present.gif
Tip: Para recargar de forma periódica la página pasados unos segundos podemos usar el meta de html
<META HTTP-EQUIV=Refresh CONTENT="5; URL=vuestra_pagina.php">
Como array de imágenes podemos tomar estas
$array=[
"https://es.wikieducator.org/images/3/3d/Ajax_cliente_servidor.png",
 
"https://es.wikieducator.org/images/7/7b/Funcionamiento_ajax.png",
"https://es.wikieducator.org/images/a/aa/Angular_app_base.png",
"https://es.wikieducator.org/images/3/3d/Docker_distancia_1.png",
 
"https://es.wikieducator.org/images/4/4e/Opcion_Instalar.png",
"https://es.wikieducator.org/images/a/ab/AplicacionWeb.png",
"https://es.wikieducator.org/images/e/e4/Red3.png",
"https://es.wikieducator.org/images/f/f2/DACTW.png",
"https://es.wikieducator.org/images/e/e5/M3_web.png",
"https://es.wikieducator.org/images/a/a6/Ficheros.jpeg"];





Ejercicio 6 : Tienda de verduras



Icon activity.jpg
Ejercicio 6 : Tienda de verduras

Dada una tienda de verduras con los siguientes productos

$productos = [
    'lechuga' => ['unidades' => 200,
                   'precio' => 0.90],
    'tomates' =>['unidades' => 2000,
                 'precio' => 2.15],
    'cebollas' =>['unidades' => 3200,
                  'precio' => 0.49],
    'fresas' =>['unidades' => 4800,
                'precio' => 4.50],
    'manzanas' =>['unidades' => 2500,
                  'precio' => 2.10],
];
  • Realiza una aplicación con un formulario para poder comprar productos
  • Tras la compra se visualizará la factura del producto siempre que haya unidades
  • Se mostrará las unidades que quedan de cada producto




Ejercicio 7 : Accesos de usuario



Icon activity.jpg
Ejercicio 7 : Accesos de usuario
Creamos una aplicación dónde los usuarios se identifican (una caja de texto para identificarse)
Luego iremos contando cada vez que un usuario hace un click




Ejercicio 8 : Array multinivel



Icon activity.jpg
Ejercicio 8 : Array multinivel
Vamos a realizar un recorrido de un array asociativo de varios niveles.
Realizaremos un estudio del array y luego lo recorreremos
Dado un fichero que contiene un array asociativo
El array contiene información de cantantes y de cada cantante su nombre, su década y canciones que tiene
Se trata que trabajes en dos aspectos que se complementas
  1. Entender y explicar el contenido del array, es decir si es asociativo o indexado y los indices que tiene. Si una posición es un array a su vez procedemos a explicarlo igualmente
  2. Posteriormente lo recorreremos mostrando información de los cantantes y para cantante sus canciones
Para hacer esta parte facilito un pequeño css y consistiría en aplicar el div cantante y el div canciones
Ficheros

Artista.pdf Este fichero es un css para el ejercicios Contenido del ArrayAsociativo.php

Para ver el array una buena forma es cargarlo en un fichero php y hacer o bien un var_dump o bien un print_r
<?php
 
require_once ("datos.php");
 
var_dump( $artistas );
 
 
?>
  • A partir de él podemos mostrar la siguiente imagen que describe el aray

ArrayComplejo.png

  • Observamos que en primera instancia tengo un array asociativo de 6 índices cuyos valores son
185711, 32841, 84062, 84430, 84221, 118504
  • Cada posición tiene como valor un array asociativo de 4 posiciones cuyos índices tiene los valores
name decades link canciones
  • La posición name directamente tiene un valor string que es el nombre del artista
  • La posición decades tiene un valor string que es la década de ese cantante
  • La posición link tiene un valor string que es un url a una página con información sobre el artista
  • La posición canciones es un array indexado de tantas posicione como canciones tenga el artista
  • Cada posición del array indexado canciones es un array asociativo con dos índices
title link
  • La posición title es un string con el título de la canción
  • La posición link es un string con un url donde se puede oir la canción (Actualmente ya no están alojadas en esa posición)



Ejercicio 8 : Canales de tv



Icon activity.jpg
Ejercicio 8 : Canales de TV
Accedemos al siguiente fichero json que contiene canales de tv
La ubiciación del fichero en github: https://github.com/MAlejandroR/json_tv
Primero cargamos el fichero y lo convertimos en un array asociativo
Para acceder al contenido de un fichero en git,d ebemos 
$url=  "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
$contenido = file_get_contents($url);
Posteriormente vamos a cargar canales de tv en nuestra web