Diferencia entre revisiones de «ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{:Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/nav}} ===Ejercicios tipo hola mundo=== <br /> {{MRM_Actividad|Title=Escribier por pantalla| *Muestra un mensaje por la pa...»)
 
 
(104 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/nav}}
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/nav}}
  
 +
==Estructuras secuenciales==
 +
*En esta secición son programas sencillos para probar instrucciones y acciones básicas de php sin usar estructuras de control selectivas o repetitivas.
  
===Ejercicios tipo hola mundo===
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 1:  Usa la instrucción echo]]===
 
<br />
 
<br />
{{MRM_Actividad|Title=Escribier por pantalla|
+
{{MRM_Actividad|Title=Ejercicio 1 : Usa la instrucción echo|
*Muestra un mensaje por la pantalla
+
*Realiza un programa donde visualices un mensaje usando la instrucción '''''echo'''''
 +
*Prueba a insetar caracteres especiales \n, \t
 +
*Qué diferenica hay en usar '''''\n''''' e insertar la etiquega <source lang=html5><br/></source>, pruébalo y verifica la salida (mira el código fuelte del recurso  generado.
 +
*Declara variable como se muestra y  visualízarla.
 +
<source lang=php>
 +
$nombre = "Maria"
 +
</source>
 
}}
 
}}
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 2: Probando printf]]===
 
<br />
 
<br />
{{MRM_Actividad|Declaración de  variables|
+
{{MRM_Actividad|Title=Ejercicio 2 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio2|Probando printf]]|
*Este programa donde declares variables de diferente tipo.
+
*Asigna a una variable un valor real
*Luego muestres su valor.
+
*Visualiza dicho valor con formato %s, %f, %F, %c, %x, %X, %b, %o
*Hazlo usando el operador de concatenación y sin usarlo
+
*Prueba a especificar en número de decimales en %f
 +
<source lang=php>
 +
$n = 5.25251;
 +
printf ("Valor del número con 2 decimales %.2f ",, $n); //Mostrará 5.25, solo dos decimales
 +
</source>
 
}}
 
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 3: printf, tabla ascii ]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 3 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio3|printf, tabla ascii ]]|
 +
*Usando la estructura de control '''''for'''''
 +
<source lang=php>
 +
for ($n=32; $n<128: $n++){ //iterará $n desde 32 hasta el valor 128
 +
}
 +
</source>
 +
*Para mostrar una tabla básica, las etiquetas  '''''html''''' serán
 +
<source lang=html5>
 +
<table>
 +
    <caption></caption>
 +
    <tr>
 +
        <th>titulo 1</th>
 +
        <th>titulo 2</th>
 +
    <tr>
 +
        <td></td>
 +
    ......
 +
 +
</table>
 +
</source>
 +
*Realiza el programa que genere dicha información
 +
}}
 +
<br />
 +
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio4|Ejercicio 4: Ver tipos de variable]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 4 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio4|Ver tipos de variable]]|
 +
*Asigna a una variable cada uno de los cinco tipos básicos
 +
*Después de cada asignación visualiza el tipo con la función '''''gettype()'''''
 +
<source lang=php>
 +
$a = 10;
 +
echo "Valor de la variable \$a es $a y es de tipo ".gettype($a)."<br />";
 +
</source>
 +
}}
 +
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 5: Probando los tipos enteros]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 5:[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio5| Probando los tipos enteros]]|
 +
*Haz un programa que asignes diferentes valores enteros a las variables.
 +
*Realiza la asignación en distinto formato (decimal, octal, hexadecimal y binario).
 +
*Prueba  posteriormente a visualziarlo.
 +
*Analiza e interpreta el resultado.
 +
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 6: Funciones de conversión 1]]===
 +
<br />
 +
{{MRM_Actividad|Title = Ejercicio 6 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio6|Funciones de conversión 1]]|
 +
*Usa las fuciones especificadas anteriormente (decbin, dechex, decoct),  para visualizar un número en los diferentes formatos numéricos
 +
*Muestra el valor original, el convertido
 +
*En el primer caso muestra el tipo del valor que retorna la función usada
 +
}}
 +
<br />
 +
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio1|Ejercicio 7: Funciones de conversión]]===
 +
<br />
 +
{{MRM_Actividad|Title = Ejercicio 7 : [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio7|Funciones de conversión]]|
 +
*Usa las fuciones especificadas para visualizar en los tres sistemas decimales los números del 1 al 100
 +
*Qué diferencia hay de hacerlo así a usar '''''printf'''''
 +
}}
 +
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio8|Ejercicio 8:  Declaración de  variables 1]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 8.- Declaración de  variables|
 +
*Haz un programa donde declares variables de diferentes tipos
 +
*Asigna los valores con diferente formato
 +
*Visualiza sus valores
 +
}}
 +
 +
<br />
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio9|Ejercicio 9: Declaración de variables 2]]===
  
 
<br />
 
<br />
{{MRM_Actividad|Title=Declaración de variables|
+
{{MRM_Actividad|Title=Ejercicio 9: Declaración de variables|
 
*Este programa asignará los siguientes valores a variables y luego lo visualizará
 
*Este programa asignará los siguientes valores a variables y luego lo visualizará
 
**125;
 
**125;
**0874;
+
**0874; //Observaras que esta asignación produce un error, ya que el 8,no es un dígito o guarismo correcto como valor en una
 +
        sistema octal
 +
        //Tras esta observación asigna un valor válido 
 
**0xAbC12;
 
**0xAbC12;
 
**0b1100;
 
**0b1100;
Línea 43: Línea 130:
 
-->
 
-->
  
<hr />
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio10|Ejercicio 10: Cambiar aleatoriamente el estilo de un texto]]===
{{Tip|Los siguientes programas son algorítmicos básicos}}
+
 
<hr />
+
<br />
 +
{{MRM_Actividad|Title=Ejercicio 10: Cambiar aleatoriamente el estilo de un texto|
 +
*Cargar un texto con un h y color aleatorio
 +
 
 +
<nowiki>
 +
<hx>  style=color:#RGB>Este es el texto que debe de aparecer cambiante </hx>
 +
</nowiki>
 +
 
 +
* '''''x, R,G''''' y '''''B''''' tendrán valores generados aleatoriamente siendo
 +
<ul>
 +
<li><strong>x</strong> un valor de 1 a 6.</li>
 +
<li><strong>R</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de rojo)</li>
 +
<li><strong>G</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de Verde)</li>
 +
<li><strong>B</strong> un valor en hexadecimal de entre 0 y 255 (tonalidad de Azul)</li>
 +
</ul>
 +
}}
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio11|Ejercicio 11: Probando variables de variables]]===
 +
 
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 11:Probando variables de variables|
 +
*Declaramos el precio de 5 productos de hortalizas
 +
*Declaramos la variable $producto
 +
*Vamos visualizando el producto y su precio cambiando solo el valor del producto por el nombre de la hortaliza escribiendo la cadena
 +
<source lang=php>
 +
echo "<h1>El precio de $producto es ${$producto}</h1>";
 +
</source>
 +
}}
 +
 
 +
==Estructuras de control==
 +
<br />
 +
 
 +
=== [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio12|Ejercicio 12:Selección simple]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 12: Selección simple|
 +
*Generamos un número aleatoria entre 1 y 100
 +
*Si el número es par informamos que ha ganado un premio
 +
*En cualquier caso mostramos el número obtenido
 +
}}
 +
<br />
 +
=== [[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio13|Ejercicio 13:Selección simple 2]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 13: Selección simple 2|
 +
*Generamos una edad entre 1 y 90 años
 +
*Mostraremos la edad generada
 +
*En caso de tener menos de 18 años informaremos de ello en un mensaje en rojo
 +
}}
 +
 
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio14|Ejercicio 14: Selección completa]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 14: Selección simple completa|
 +
*Generamos una edad entre 1 y 90 años
 +
*El programa nos dirá si la edad generada es o no mayor de edad
 +
}}
 +
 
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio15|Ejercicio 15: Selección múltiple con if]]===
 +
<br />
 +
{{MRM_Actividad|Title=Mostrar nombre mes|
 +
*Generamos un número entre 1 y 15
 +
*Mostramos el número del mes y su nombre (el que correspondiente al número: enero, febrero, ...
 +
*En caso de ser mayor de 12  mostraremos mes incorrecto
 +
*Usamos la estructura
 +
<source lang=php>
 +
if (..)
 +
      ...
 +
elseif
 +
      ...
 +
elseif
 +
      ...
 +
...
 +
else
 +
    ....
 +
</source>
 +
}}
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio100|Ejercicio 100: Ecuación segundo grado]]===
 +
<br />
 +
{{MRM_Actividad|Title = Ecuación segundo grado|
 +
*Se trata de encontrar dos valores para que la ecuación se satisfaga (que sea 0)
 +
*La ecuación que lo resuelve también se aporta
 +
[[Image:e1g.png|center|450px]]
 +
;Podemos ver la ecuación que resuelve el problema
 +
[[Archivo:e1g_analisis.png|450|center]]
 +
}}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio16|Ejercicio 16: Selección con switch]]===
 +
<br />
 +
{{MRM_Actividad|Title = Selección con switch|
 +
 
 +
*Generamos un número de mes de forma aleatoria
 +
*Mostramos el número de mes y su nombre
 +
*Sería igual que el ejercicio anterior, pero usando un switch
 +
}}
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio17|Ejercicio 17: Muestra el nombre y el número de días de un mes]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 17: Muestra el nombre y número de días de un mes|
 +
*Modifica el ejercicio anterior añadiendo la información del número de días
 +
*Intenta seguir usando el switch
 +
*¿Cómo podrás hacer cosas particulares en cada case del switch (el nombre del mes) y algo común en varios casos (meses de 30 días y de 31 días)
 +
}}
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio18|Ejercicio 18: Suma los 100 primero números]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 18: Suma 100 número|
 +
*Mostrar la suma de los primeros 100 números naturales
 +
*Se quiere ver el número de iteración y la suma hasta ese momento (Es decir queremos ver cien líneas)
 +
*Cada iteración que aparezca en numeración ordinal en símbolo 1ª , 2ª, ...
 +
}}
 +
 
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio19|Ejercicio 19: Bucles: tirar datos]]===
 +
<br />
 +
{{MRM_Actividad|Title=Tirar dados|
 +
*Vamos a simular el juego de los dados
 +
*Vamos a tirar 100000 veces un dado y vamos a ver cuantas veces sale
 +
el 1, el 2, el 3, el 4, el 5 y el 6
 +
*Para tirar el dado, usamos la función random
 +
}}
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio19_b|Ejercicio 19_b: Bucles y operador desplazamiento]]===
 +
<br />
 +
{{Actividad|
 +
Obtener los 20 primeros múltiplos de 2 utilizando el operador de desplazamiento |
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio20|Ejercicio 20:Mostrar mes y número de días]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 20: Mostrar mes y número de días|
 +
*Genera un número aleatorio entre 1 y 15
 +
*Muestra con un mensaje en número de días y el nombre del mes
 +
*Intenta usar la instrucción switch vista en clase
 +
}}
 +
 
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio20|Ejercicio 20: Validar Fechas]]===
 +
<br />
 +
 
 +
{{MRM_Actividad|Title=Ejercicio 20: Validar Fechas|
 +
Haz un programa que obtenga de forma aleatoria:  día (1-33), mes(1-14) y año(1-3000) y nos diga si la fecha es correcta o no y porqué.
 +
*Recuerda obtener si el año es bisiesto  o no,
 +
*Para ello puedes definirte una función
 +
*Para calcular si un año es bisiesto, lo es si y solo si
 +
  El año es divisible entre 4 y no lo es entre 100, o bien lo es entre 400
 +
}}
  
{{MRM_Actividad|Title=Sumar números|
 
Haz un programa que sume los 100 primeros números}}
 
<!--
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio2 | Solución]]</font>
 
-->
 
<hr />
 
{{MRM_Actividad|Title=Fechas|
 
Haz un programa que obtenga de forma aleatoria dia (1-31)mes(1-12) y año(1-3000) y nos diga si la fecha es correcta o no y porqué}}
 
 
<!--
 
<!--
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio3 | Solución]]</font>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio3 | Solución]]</font>
 
-->
 
-->
<hr />
+
<br />
{{MRM_Actividad|Title= Nómina|
+
*Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que:
+
#mas de 40 horas son extras (1.5 el precio base)
+
#IRPF < 600E exento
+
#Entre 600 y 800 5%
+
#Mas de 800 12 %
+
*Nos debe de dar detalle del bruto, descuentos y neto de salario}}
+
<!--
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio4 | Solución]]</font>
+
-->
+
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio21|Ejercicio 21: Tabla de multiplicar ]]===
 +
<br/>
 
{{MRM_Actividad|Title=Tabla de multiplicar|
 
{{MRM_Actividad|Title=Tabla de multiplicar|
  
Línea 90: Línea 318:
 
{{tip|'''''Revisa la teoría''''', y confirma en este ejercicio que tienes claro la posibilidad de entremezclar código php y html y para el intérprete de php es todo como si fuera el mismo script}}
 
{{tip|'''''Revisa la teoría''''', y confirma en este ejercicio que tienes claro la posibilidad de entremezclar código php y html y para el intérprete de php es todo como si fuera el mismo script}}
  
 +
<br />
  
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio22|Ejercicio 22: Genera una nómina]]===
 +
<br />
  
 +
{{MRM_Actividad|Title= Generamos una Nómina|
 +
*Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que:
 +
#mas de 40 horas son extras (1.5 el precio base)
 +
#IRPF < 600E exento
 +
#Entre 600 y 800 5%
 +
#Mas de 800 12 %
 +
*Nos debe de dar detalle del bruto, descuentos y neto de salario}}
 +
<!--
 +
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio4 | Solución]]</font>
 +
-->
  
<hr />
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio23|Ejercicio 23: Número primo]]===
 +
<br />
 
{{MRM_Actividad|Title=Ejercicio 5 Número primo|
 
{{MRM_Actividad|Title=Ejercicio 5 Número primo|
 
*Un programa que nos diga si un número es o no primo
 
*Un programa que nos diga si un número es o no primo
 +
*Recuerda que un número es primo si es divisible entre sí  mismo y la unidad
 +
*El cero no lo consideraremos no primo, pero no hemos de aplicar el algoritmo general, es un caso especial
 +
*Genera un número aleatorio entre -100 y 100
 +
 
}}
 
}}
  
Línea 102: Línea 348:
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio5 | Solución]]</font>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio5 | Solución]]</font>
 
-->
 
-->
<hr />
+
<br />
  
 
<!--
 
<!--
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio6 | Solución]]</font>
 
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio6 | Solución]]</font>
 
-->
 
-->
<hr />
+
<br />
{{MRM_Actividad|
+
 
Realiza un programa que visualice las constantes predefinidas '''variables''' vistas en la teoría, y al menos otras 8 de las constantes predefinidas '''estándar'''}}
+
==Ejercicios con fechas==
<!--
+
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio24|Ejercicio 24: Fechas básicas]]===
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio7 | Solución]]</font>
+
<br />
-->
+
{{MRM_Actividad|Title=Ejercicio 24: Fechas básicas|
<hr />
+
*Haz un programa que me diga cuantos segundos ha pasado desde el '''''1 de enero de 1970''''' hasta '''''el instante actual.'''''
<div style="float: right;font-size:30px;text-align:center;background-color:DarkSeaGreen">
+
*Que me muestra la fecha actual en formato '''''Dia/mes/año Hora:minutos:segundos''''', todos los datos numéricos
</div>
+
*Muestra la fecha dentro de '''''25 horas''''' con el formato anterior.
 +
*Usando la etiqueta '''''META Refresh''''' (etiqueta de html que hace que de forma automática la página se recargue cada x segundos, ver sintaxis más abajo), haz que la página se recargue cada 5 segundos y observa cómo cambian los datos y entiéndelo
 +
<source lang=php>
 +
time();
 +
date($formato, $timestamp)
 +
</source>
 +
<source lang=html5>
 +
<head>
 +
  <meta http-equiv="refresh" content="5">
 +
</head>
 +
</source>
 +
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio24|Ejercicio 25: Calcula la edad]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 25: Calcula tu edad|
 +
*A partir de tu fecha de nacimiento, haz un programa que me diga la edad
 +
Una opción aproximada es encontrar los segundos de la edad y dividirlo entre los segundos que tiene un año
 +
*Truncamos el resultado
 +
<source lang=php>
 +
strtotime();
 +
time();
 +
</source>
 +
*No es una buena solución, piensa una más exacta
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio25|Ejercicio 26: Reloj]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 26: Haz un reloj|
 +
*Haz un programa que me me muestre un reloj digital numérico con precisión de milisegundos
 +
*La página se debe de recargar cada 0.01 segundos
 +
*El formato del reloj debe ser
 +
;Hora:Minutos:Segundos:Milésimas
 +
*Funciones a utilizar
 +
<source lang=php>
 +
microtime(); //Retorna un string ("microsegundos segundos")
 +
strpos("cadena", "caracter") //Busca el caracter en la cadena y nos retorna su posición
 +
substr("cadena", "pos_ini", "pos_fin" //Retorana un substring de cadena desde el carácter ubicado en la posición pos_1 hasta el carácter ubicado en la posición pos_"
 +
</source>
 +
*Refresca la página cada 0.01 segundos
 +
<source lang=html5>
 +
<head>
 +
  <meta http-equiv="refresh" content="0.01">
 +
</head>
 +
</source>
 +
 
 +
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio26|Ejercicio 27: Fecha aleatoria]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 27: Fecha aleatoria|
 +
*Genera una fecha aleatoria (día, mes, año, hora, minuto, segundos) como un string
 +
*Convierte ese string fecha en timestamp (entero largo que representa segundos)
 +
*Obtén la diferencia en segundos con la fecha actual (Si la fecha es anterior  a 1/1/1970, ese timestamp será negativ o)
 +
*Obten la fecha de ese número de segundos
 +
*Interprete y entiende cada dato que obtienes
 +
<source lang=php>
 +
strtotime("mes/dia/año") //Convierte una fecha dada como string en un timestamp
 +
date (formato, timestapm)//convierte un timestamp en staring
 +
checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es
 +
</source>
 +
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio27|Ejercicio 28: Fecha en idiomas]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 28: Fecha en idiomas|
 +
*Instala en el sismtea los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
 +
*Informa de la fecha en cada idioma con la siguiente estructura
 +
 
 +
 
 +
 
 +
<source lang=php>
 +
setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
 +
date (formato, timestapm)//convierte un timestamp en staring
 +
checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es
 +
</source>
 +
}}
 +
<br />
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio28|Ejercicio 29: Indica los días de la semana en idiomas]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 29: Indica los días de la semana en tres idioma|
 +
*Instala en el sistema los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
 +
*Informa de cómo se escribe el día de la semana en cada uno de esos indiomas
 +
 
 +
 
 +
 
 +
<source lang=php>
 +
setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
 +
echo strftime("en lenguaje idioma  %A<br />"); //Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
 +
echo strftime("en Español %A<br />", strtotime("+1 day"));//Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
 +
.....
 +
</source>
 +
}}
 +
<br />
 +
 
 +
==Ejercicios con funciones==
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio30|Ejercicio 30: Declarara una función]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 30: Declarara una función|
 +
*Declara una función que me devuelva el mayor de dos números dados
 +
*Invócala desde el programa principal
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio30|Ejercicio 31: Función con variables globales]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 31: Variables globales|
 +
*Declara una función llamada par
 +
*Tomará un valor generado aleatoriamenete en el script principal (no dentro de la función)
 +
*Retornará true o false según  el valor sea par o no sea par
 +
}}
 +
<br />
 +
 
 +
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio31|Ejercicio 32:Parámetros por referencia]]===
 +
<br />
 +
{{MRM_Actividad|Title=Ejercicio 32: Parametros por referencia|
 +
*Haz una función que no retorne nada (procedimiento)
 +
*Esta función recibe un valor
 +
*Si el valor es par lo divide por dos y si es impar lo multiplica por dos
 +
*El valor que se pasa deberá quedar establecido en la variable/parámetro después de invocar a la función
 +
}}
 +
<br />
  
 
===Ejercicios de sintaxis===
 
===Ejercicios de sintaxis===

Última revisión de 00:15 3 nov 2023



Contenido

Estructuras secuenciales

  • En esta secición son programas sencillos para probar instrucciones y acciones básicas de php sin usar estructuras de control selectivas o repetitivas.

Ejercicio 1: Usa la instrucción echo



Icon activity.jpg
Ejercicio 1 : Usa la instrucción echo
  • Realiza un programa donde visualices un mensaje usando la instrucción echo
  • Prueba a insetar caracteres especiales \n, \t
  • Qué diferenica hay en usar \n e insertar la etiquega
    <br/>
    , pruébalo y verifica la salida (mira el código fuelte del recurso generado.
  • Declara variable como se muestra y visualízarla.
$nombre = "Maria"




Ejercicio 2: Probando printf



Icon activity.jpg
Ejercicio 2 : Probando printf
  • Asigna a una variable un valor real
  • Visualiza dicho valor con formato %s, %f, %F, %c, %x, %X, %b, %o
  • Prueba a especificar en número de decimales en %f
$n = 5.25251;
printf ("Valor del número con 2 decimales %.2f ",, $n); //Mostrará 5.25, solo dos decimales




Ejercicio 3: printf, tabla ascii



Icon activity.jpg
Ejercicio 3 : printf, tabla ascii
  • Usando la estructura de control for
for ($n=32; $n<128: $n++){ //iterará $n desde 32 hasta el valor 128
}
  • Para mostrar una tabla básica, las etiquetas html serán
<table>
    <caption></caption>
    <tr>
        <th>titulo 1</th>
        <th>titulo 2</th>
    <tr>
        <td></td>
    ......
 
</table>
  • Realiza el programa que genere dicha información




Ejercicio 4: Ver tipos de variable



Icon activity.jpg
Ejercicio 4 : Ver tipos de variable
  • Asigna a una variable cada uno de los cinco tipos básicos
  • Después de cada asignación visualiza el tipo con la función gettype()
$a = 10;
echo "Valor de la variable \$a es $a y es de tipo ".gettype($a)."<br />";




Ejercicio 5: Probando los tipos enteros



Icon activity.jpg
  • Haz un programa que asignes diferentes valores enteros a las variables.
  • Realiza la asignación en distinto formato (decimal, octal, hexadecimal y binario).
  • Prueba posteriormente a visualziarlo.
  • Analiza e interpreta el resultado.




Ejercicio 6: Funciones de conversión 1



Icon activity.jpg
  • Usa las fuciones especificadas anteriormente (decbin, dechex, decoct), para visualizar un número en los diferentes formatos numéricos
  • Muestra el valor original, el convertido
  • En el primer caso muestra el tipo del valor que retorna la función usada




Ejercicio 7: Funciones de conversión



Icon activity.jpg
Ejercicio 7 : Funciones de conversión
  • Usa las fuciones especificadas para visualizar en los tres sistemas decimales los números del 1 al 100
  • Qué diferencia hay de hacerlo así a usar printf




Ejercicio 8: Declaración de variables 1



Icon activity.jpg
Ejercicio 8.- Declaración de variables
  • Haz un programa donde declares variables de diferentes tipos
  • Asigna los valores con diferente formato
  • Visualiza sus valores





Ejercicio 9: Declaración de variables 2



Icon activity.jpg
Ejercicio 9: Declaración de variables
  • Este programa asignará los siguientes valores a variables y luego lo visualizará
    • 125;
    • 0874; //Observaras que esta asignación produce un error, ya que el 8,no es un dígito o guarismo correcto como valor en una
        sistema octal
       //Tras esta observación asigna un valor válido  
    • 0xAbC12;
    • 0b1100;
    • "Esto es una cadena de caracteres";
    • 'Esto es otra cadena de caracteres';
               Esto es una cadena
               multilínea
               y termina aquí
                Esto es una cadena
               multilínea
               y termina aquí
    • 1.23432230003322014000002234101;
    • 1234E-2;
    • null;
    • true;
    • false;




Ejercicio 10: Cambiar aleatoriamente el estilo de un texto



Icon activity.jpg
Ejercicio 10: Cambiar aleatoriamente el estilo de un texto
  • Cargar un texto con un h y color aleatorio

<hx> style=color:#RGB>Este es el texto que debe de aparecer cambiante </hx>

  • x, R,G y B tendrán valores generados aleatoriamente siendo
  • x un valor de 1 a 6.
  • R un valor en hexadecimal de entre 0 y 255 (tonalidad de rojo)
  • G un valor en hexadecimal de entre 0 y 255 (tonalidad de Verde)
  • B un valor en hexadecimal de entre 0 y 255 (tonalidad de Azul)



Ejercicio 11: Probando variables de variables



Icon activity.jpg
Ejercicio 11:Probando variables de variables
  • Declaramos el precio de 5 productos de hortalizas
  • Declaramos la variable $producto
  • Vamos visualizando el producto y su precio cambiando solo el valor del producto por el nombre de la hortaliza escribiendo la cadena
 echo "<h1>El precio de $producto es ${$producto}</h1>";




Estructuras de control


Ejercicio 12:Selección simple



Icon activity.jpg
Ejercicio 12: Selección simple
  • Generamos un número aleatoria entre 1 y 100
  • Si el número es par informamos que ha ganado un premio
  • En cualquier caso mostramos el número obtenido




Ejercicio 13:Selección simple 2



Icon activity.jpg
Ejercicio 13: Selección simple 2
  • Generamos una edad entre 1 y 90 años
  • Mostraremos la edad generada
  • En caso de tener menos de 18 años informaremos de ello en un mensaje en rojo





Ejercicio 14: Selección completa



Icon activity.jpg
Ejercicio 14: Selección simple completa
  • Generamos una edad entre 1 y 90 años
  • El programa nos dirá si la edad generada es o no mayor de edad





Ejercicio 15: Selección múltiple con if



Icon activity.jpg
Mostrar nombre mes
  • Generamos un número entre 1 y 15
  • Mostramos el número del mes y su nombre (el que correspondiente al número: enero, febrero, ...
  • En caso de ser mayor de 12 mostraremos mes incorrecto
  • Usamos la estructura
if (..)
       ...
 elseif
       ...
 elseif 
       ...
 ...
 else
     ....




Ejercicio 100: Ecuación segundo grado



Icon activity.jpg
Ecuación segundo grado
  • Se trata de encontrar dos valores para que la ecuación se satisfaga (que sea 0)
  • La ecuación que lo resuelve también se aporta
E1g.png
Podemos ver la ecuación que resuelve el problema
450








Ejercicio 16: Selección con switch



Icon activity.jpg
Selección con switch
  • Generamos un número de mes de forma aleatoria
  • Mostramos el número de mes y su nombre
  • Sería igual que el ejercicio anterior, pero usando un switch




Ejercicio 17: Muestra el nombre y el número de días de un mes



Icon activity.jpg
Ejercicio 17: Muestra el nombre y número de días de un mes
  • Modifica el ejercicio anterior añadiendo la información del número de días
  • Intenta seguir usando el switch
  • ¿Cómo podrás hacer cosas particulares en cada case del switch (el nombre del mes) y algo común en varios casos (meses de 30 días y de 31 días)




Ejercicio 18: Suma los 100 primero números



Icon activity.jpg
Ejercicio 18: Suma 100 número
  • Mostrar la suma de los primeros 100 números naturales
  • Se quiere ver el número de iteración y la suma hasta ese momento (Es decir queremos ver cien líneas)
  • Cada iteración que aparezca en numeración ordinal en símbolo 1ª , 2ª, ...





Ejercicio 19: Bucles: tirar datos



Icon activity.jpg
Tirar dados
  • Vamos a simular el juego de los dados
  • Vamos a tirar 100000 veces un dado y vamos a ver cuantas veces sale
el 1, el 2, el 3, el 4, el 5 y el 6
  • Para tirar el dado, usamos la función random




Ejercicio 19_b: Bucles y operador desplazamiento



Icon activity.jpg

Actividad

Obtener los 20 primeros múltiplos de 2 utilizando el operador de desplazamiento




Ejercicio 20:Mostrar mes y número de días



Icon activity.jpg
Ejercicio 20: Mostrar mes y número de días
  • Genera un número aleatorio entre 1 y 15
  • Muestra con un mensaje en número de días y el nombre del mes
  • Intenta usar la instrucción switch vista en clase





Ejercicio 20: Validar Fechas




Icon activity.jpg
Ejercicio 20: Validar Fechas

Haz un programa que obtenga de forma aleatoria: día (1-33), mes(1-14) y año(1-3000) y nos diga si la fecha es correcta o no y porqué.

  • Recuerda obtener si el año es bisiesto o no,
  • Para ello puedes definirte una función
  • Para calcular si un año es bisiesto, lo es si y solo si
 El año es divisible entre 4 y no lo es entre 100, o bien lo es entre 400





Ejercicio 21: Tabla de multiplicar



Icon activity.jpg
Tabla de multiplicar
  • Genera un número aleatorio y muestra la tabla de multiplicar
  • Haz que salga con una tabla usando las etiquetas html
    <table>
       <tr>
        <th> </th>
       </tr>
            ......
       <tr>
        <td> </td>
       </tr>
         ........
    </table>

  • Intenta hacerlo que salgan las diez tablas de multiplicar



Icon present.gif
Tip: Revisa la teoría, y confirma en este ejercicio que tienes claro la posibilidad de entremezclar código php y html y para el intérprete de php es todo como si fuera el mismo script



Ejercicio 22: Genera una nómina




Icon activity.jpg
Generamos una Nómina
  • Haz un programa que a partir de precio hora y de número de horas calcule una nómina, teniendo en cuenta que:
  1. mas de 40 horas son extras (1.5 el precio base)
  2. IRPF < 600E exento
  3. Entre 600 y 800 5%
  4. Mas de 800 12 %
  • Nos debe de dar detalle del bruto, descuentos y neto de salario



Ejercicio 23: Número primo



Icon activity.jpg
Ejercicio 5 Número primo
  • Un programa que nos diga si un número es o no primo
  • Recuerda que un número es primo si es divisible entre sí mismo y la unidad
  • El cero no lo consideraremos no primo, pero no hemos de aplicar el algoritmo general, es un caso especial
  • Genera un número aleatorio entre -100 y 100






Ejercicios con fechas

Ejercicio 24: Fechas básicas



Icon activity.jpg
Ejercicio 24: Fechas básicas
  • Haz un programa que me diga cuantos segundos ha pasado desde el 1 de enero de 1970 hasta el instante actual.
  • Que me muestra la fecha actual en formato Dia/mes/año Hora:minutos:segundos, todos los datos numéricos
  • Muestra la fecha dentro de 25 horas con el formato anterior.
  • Usando la etiqueta META Refresh (etiqueta de html que hace que de forma automática la página se recargue cada x segundos, ver sintaxis más abajo), haz que la página se recargue cada 5 segundos y observa cómo cambian los datos y entiéndelo
time();
date($formato, $timestamp)
<head>
  <meta http-equiv="refresh" content="5">
</head>




Ejercicio 25: Calcula la edad



Icon activity.jpg
Ejercicio 25: Calcula tu edad
  • A partir de tu fecha de nacimiento, haz un programa que me diga la edad

Una opción aproximada es encontrar los segundos de la edad y dividirlo entre los segundos que tiene un año

  • Truncamos el resultado
strtotime();
time();
  • No es una buena solución, piensa una más exacta




Ejercicio 26: Reloj



Icon activity.jpg
Ejercicio 26: Haz un reloj
  • Haz un programa que me me muestre un reloj digital numérico con precisión de milisegundos
  • La página se debe de recargar cada 0.01 segundos
  • El formato del reloj debe ser
Hora
Minutos:Segundos:Milésimas
  • Funciones a utilizar
microtime(); //Retorna un string ("microsegundos segundos")
strpos("cadena", "caracter") //Busca el caracter en la cadena y nos retorna su posición
substr("cadena", "pos_ini", "pos_fin" //Retorana un substring de cadena desde el carácter ubicado en la posición pos_1 hasta el carácter ubicado en la posición pos_"
  • Refresca la página cada 0.01 segundos
<head>
  <meta http-equiv="refresh" content="0.01">
</head>




Ejercicio 27: Fecha aleatoria



Icon activity.jpg
Ejercicio 27: Fecha aleatoria
  • Genera una fecha aleatoria (día, mes, año, hora, minuto, segundos) como un string
  • Convierte ese string fecha en timestamp (entero largo que representa segundos)
  • Obtén la diferencia en segundos con la fecha actual (Si la fecha es anterior a 1/1/1970, ese timestamp será negativ o)
  • Obten la fecha de ese número de segundos
  • Interprete y entiende cada dato que obtienes
 strtotime("mes/dia/año") //Convierte una fecha dada como string en un timestamp
 date (formato, timestapm)//convierte un timestamp en staring
 checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es




Ejercicio 28: Fecha en idiomas



Icon activity.jpg
Ejercicio 28: Fecha en idiomas
  • Instala en el sismtea los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
  • Informa de la fecha en cada idioma con la siguiente estructura


 setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
 date (formato, timestapm)//convierte un timestamp en staring
 checkdate (dia,mes.year) //Función que retorna ture si la fecha es correcta, false si no lo es




Ejercicio 29: Indica los días de la semana en idiomas



Icon activity.jpg
Ejercicio 29: Indica los días de la semana en tres idioma
  • Instala en el sistema los siguintes locales es_ES fr_FR y en_US(Varolores para idiomas español, francés e inglés)
  • Informa de cómo se escribe el día de la semana en cada uno de esos indiomas


 setlocale(LC_ALL, idioma) //Establece un idioma en el sistema para fechas, monedas, y formatos. Debe estar instalado en el sistema
 echo strftime("en lenguaje idioma  %A<br />"); //Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
 echo strftime("en Español %A<br />", strtotime("+1 day"));//Nos muestra el nombre del día de la semana actual del lenguaje en el idioma establecido
.....




Ejercicios con funciones

Ejercicio 30: Declarara una función



Icon activity.jpg
Ejercicio 30: Declarara una función
  • Declara una función que me devuelva el mayor de dos números dados
  • Invócala desde el programa principal




Ejercicio 31: Función con variables globales



Icon activity.jpg
Ejercicio 31: Variables globales
  • Declara una función llamada par
  • Tomará un valor generado aleatoriamenete en el script principal (no dentro de la función)
  • Retornará true o false según el valor sea par o no sea par




Ejercicio 32:Parámetros por referencia



Icon activity.jpg
Ejercicio 32: Parametros por referencia
  • Haz una función que no retorne nada (procedimiento)
  • Esta función recibe un valor
  • Si el valor es par lo divide por dos y si es impar lo multiplica por dos
  • El valor que se pasa deberá quedar establecido en la variable/parámetro después de invocar a la función




Ejercicios de sintaxis