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

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}»)
 
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Arrays/nav}}
 +
<br />
 +
__NOTOC__
 +
{{Actividad|Title=Array de 5 ciudades|
 +
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/>
 +
{{MRM_Actividad|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/>
 +
-->
 +
{{MRM_Actividad|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>
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif",
 +
"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg"
 +
);
 +
</source>
 +
<!--
 +
{{Plegable|hide|Posible solución|
 +
<source lang=php>
 +
<?php
 +
//Inicializamos el array de imágenes
 +
$array = ["http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif",
 +
    "http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg"
 +
];
 +
 +
$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/>
 +
-->
 +
===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
 +
 +
===Contar accesos de usuarios identificados===
 +
<br />
 +
{{Actividad|
 +
;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>
 +
 +
}}
 +
-->
 +
}}
 +
 +
;Vamos a realizar un recorrido de un array asociativo de varios niveles.
 +
:Realizaremos un estudio del array y luego lo recorreremos
 +
{{Actividad|
 +
;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]]
 +
====Planteando la solución====
 +
 +
===Contenido del array===
 +
 +
;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 />
 +
-->

Revisión de 08:55 20 nov 2019





Icon activity.jpg

Array de 5 ciudades

Crea un array indexado con 5 valores de ciudades y recórrelo con un for





Icon activity.jpg
Actividad
Crea un array con 10 notas aleatorias y posteriormente las visualizas obteniendo los valores

estadísticos de la media, máxima y mínima




Icon activity.jpg
Actividad
Crea un array con imagenes aleatorias y luego haz que se carguen cada 5 segundos de forma aleatoria



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">


	"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/a_piece_for_the_wicked_vol_1.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/double_t.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/flagrantly_yours.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/gothic.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/iliad_of_a_wolverhampton_wanderer.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/libertine.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/lullabies_for_tough_guys.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/nocturnal_nomad.jpg",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_idle_gait_of_the_self_possessed.gif",
		"http://www.tecn.upf.es/~ocelma/cpom/practicas/php/random_images/discography/the_life_and_times_of_a_ballad_monger.jpg"
		);

<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>

}}

-->

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

Contar accesos de usuarios identificados



Icon activity.jpg

Actividad

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





Vamos a realizar un recorrido de un array asociativo de varios niveles.
Realizaremos un estudio del array y luego lo recorreremos


Icon activity.jpg

Actividad

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

Planteando la solución

Contenido del array

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)