|
|
Línea 166: |
Línea 166: |
| $cliente = "Juan Pérez"; | | $cliente = "Juan Pérez"; |
| $fecha = date("d/m/Y"); | | $fecha = date("d/m/Y"); |
− | $factura = "001"; | + | $factura_numero = "001"; |
| $producto1 = "Cuadros"; | | $producto1 = "Cuadros"; |
| $precio1 = 145; | | $precio1 = 145; |
Línea 173: |
Línea 173: |
| </source> | | </source> |
| *Queremos llegar a obtener el siguiente resultado | | *Queremos llegar a obtener el siguiente resultado |
− | [[archivo:ejercicio_factura_php.png|400px|center]] | + | [[archivo:ejercicio_factura_php.png|200px|center]] |
| + | * Para ello se pide que hagas una asignación heredoc a una variable llamda factura y luego la visualices |
| + | *Usa la etiqueta '''<pre>''' para mantener el formato |
| + | *Usa la función '''str_pad''', para conseguir cadenas de una misma longitud |
| + | *Usa la función '''number_format''' para obtener los números con los mismos decimales |
| }} | | }} |
| | | |
Revisión de 07:48 12 nov 2024
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
- 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 , pruébalo y verifica la salida (mira el código fuelte del recurso generado.
- Declara variable como se muestra y visualízarla.
|
- 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
|
- 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
|
- 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 />";
|
- 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.
|
- 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
|
- Define cuatro valores flotantes en notación decimal y científica.
- Que tengas 1,2,3 y 4 número decimales respectivamente
- Visualízalos
- Intenta crearlos con la función rand(), no es trivial.
- Utiliza number_format para mostrar los valores con diferentes 2 números de decimales y en formato europeo.
- Prueba algún otro formato usando la función number_format
https://www.php.net/manual/es/function.number-format.php
|
- 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
- Haz un programa donde declares variables de diferentes tipos
- Asigna los valores con diferente formato
- Visualiza sus valores
|
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
- 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)
|
{{MRM_Actividad|Title=Ejercicio 10.1:Asignación con heredoc|
- Vamos a construir una factura de dos productos
- Declaramos las siguientes variables
$cliente = "Juan Pérez";
$fecha = date("d/m/Y");
$factura_numero = "001";
$producto1 = "Cuadros";
$precio1 = 145;
$producto2 = "Luminarias intensas";
$precio2 = 125;
- Queremos llegar a obtener el siguiente resultado
- Para ello se pide que hagas una asignación heredoc a una variable llamda factura y luego la visualices
- Usa la etiqueta
''' para mantener el formato
*Usa la función '''str_pad''', para conseguir cadenas de una misma longitud
*Usa la función '''number_format''' para obtener los números con los mismos decimales
}}
===[[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
}}
<!--
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio3 | Solución]]</font>
-->
<br />
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio21|Ejercicio 21: Tabla de multiplicar ]]===
<br/>
{{MRM_Actividad|Title=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
}}
{{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>
-->
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio23|Ejercicio 23: Número primo]]===
<br />
{{MRM_Actividad|Title=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
}}
<!--
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio5 | Solución]]</font>
-->
<br />
<!--
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/Ejercicios/Ejercicio6 | Solución]]</font>
-->
<br />
==Ejercicios con fechas==
===[[Usuario:ManuelRomero/ProgramacionWeb/Sintaxis/ejercicios/ejercicio24|Ejercicio 24: Fechas básicas]]===
<br />
{{MRM_Actividad|Title=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
<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===
<br />
{{Actividad|Title=Ejercicios sencillos y mas complejos de php|
; Ejercicios con operaciones aritméticas
: http://www.mclibre.org/consultar/php/ejercicios/operaciones_aritmeticas/operaciones_aritmeticas.html
; Condicionales y repeticiones
: http://www.mclibre.org/consultar/php/ejercicios/if_else/if_else.html
: http://www.mclibre.org/consultar/php/ejercicios/repaso_1/repaso.html
; Expresiones regulares
: Teoría: http://www.mclibre.org/consultar/php/lecciones/php_expresiones_regulares.html
: Ejercicios: http://www.mclibre.org/consultar/php/ejercicios/expresiones_regulares/expresiones_regulares.html
; Validación
: Teoría: http://www.mclibre.org/consultar/php/lecciones/php_comprobacion_datos.html
: http://www.mclibre.org/consultar/php/ejercicios/validacion/validacion.html
; Listado interesante de ejercicos varios y de diferentes niveles
: http://www.tecn.upf.es/~ocelma/cpom/practicas
}}