Plantilla:ManuelRomero/PHP/EjerciciosSintaxisBasica

De WikiEducator
Saltar a: navegación, buscar

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 6.1 Trabajando con flotantes



Icon activity.jpg
  • 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




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 10.1: Asiganción con heredoc


{{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
Ejercicio factura php.png
  • 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 }}