Diferencia entre revisiones de «Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/Ejemplos2»
De WikiEducator
< Usuario:ManuelRomero | Scratch | Contenidos
(8 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/nav}} | {{:Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/nav}} | ||
+ | <!-- | ||
+ | ===División=== | ||
+ | *Planteamos la división de una forma divertido realizando los siguientes pasos | ||
+ | *La aplicación cumplirá los siguientes requisitos | ||
+ | |||
+ | |||
+ | |||
+ | {{Objetivos|Title=Requisitos| | ||
+ | #Seleccionamos un fondo de pantalla | ||
+ | #Hacemos una presentación con una profe | ||
+ | #La profesora nos pedirá que introduzcamos una división (dividendo y divisor) | ||
+ | #Dibujamos la división de una forma agradable | ||
+ | #Realizamos la resolución de la división aportando ayuda a la niña que la use | ||
+ | }} | ||
+ | ===Seleccionamos el fondo de pantalla=== | ||
+ | *Por estar cerca de navidad proponemos el siguiente fondo de pantalla | ||
+ | [[Archivo:divisionFondo.PNG]] | ||
+ | *Así podemos hacer que la profesora se desplace por el caminito | ||
+ | |||
+ | ===La profesora hace la presentación === | ||
+ | *Vamos a usar un poco la imaginación y hacemos que la profesora aparezca y se presente | ||
+ | ;Movimiento de la profesora | ||
+ | *Cuando hagamos click que aparezca en la casa que está en la posicion 1 | ||
+ | [[Archivo:movimiento.png]] | ||
+ | *Luego que se mueva desplazándose por los diferentes puntos 1,2,3,4,5 y se quede al final en el 6 | ||
+ | [[Archivo:codigoMovimiento.png]] | ||
+ | |||
+ | ;Presentación de la profesora | ||
{{Objetivos| | {{Objetivos| | ||
En este caso implementaremos problemas un poco más complicados | En este caso implementaremos problemas un poco más complicados | ||
Línea 60: | Línea 88: | ||
FIN_SI | FIN_SI | ||
</source > | </source > | ||
+ | *Ahora ya sabiendo si es o no bisiesto y que en un año bisiesto el mes de febrero tenemos hasta 29 días y que en uno no bisiesto solo podemos tener hasta 28 días, establecemos el siguiente algoritmo | ||
+ | <source lang = PHP> | ||
+ | SI (mes == 2) | ||
+ | SI (bisiesto = si) | ||
+ | SI dias > 29 | ||
+ | Escribir "La fecha "+Fecha+" Error: Es une mes de 29 días (Año bisiesto) | ||
+ | FIN_SI | ||
+ | SI_NO | ||
+ | SI dias > 28 | ||
+ | Escribir "La fecha "+Fecha+" Error: Es une mes de 28 días (Año no bisiesto) | ||
+ | FIN_SI | ||
+ | |||
+ | FIN_SI | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | |||
*Ahora vamos a hacer el código en scratch | *Ahora vamos a hacer el código en scratch | ||
Hacemos el algoritmo por partes | Hacemos el algoritmo por partes | ||
Sabemos que nuestro programa (el análisis) sería | Sabemos que nuestro programa (el análisis) sería | ||
− | (1)Pedir los datos de dia mes y año | + | (1) Pedir los datos de dia mes y año |
(2) si hay más de 31 días error | (2) si hay más de 31 días error | ||
(3) si hay más de 12 meses error | (3) si hay más de 12 meses error | ||
− | (4)Si el mes es de (4,6,9,11) entonces | + | (4) Si el mes es de (4,6,9,11) entonces |
− | + | si hay más de 30 días error | |
− | (5)Si el mes es febrero entonces | + | (5) Si el mes es febrero entonces |
− | + | si el mes es bisiesto entonces | |
− | + | si hay más de 29 días error | |
− | + | si no | |
− | + | si hay más de 28 días error | |
− | (6)si no hay error antes, entonces fecha correcta | + | (6) si no hay error antes, entonces fecha correcta |
*O sea tenemos un programa de 6 partes, vamos a ir haciendo cada uno | *O sea tenemos un programa de 6 partes, vamos a ir haciendo cada uno | ||
Primero hacemos el algoritmo y luego ponemos las fichas de scratch | Primero hacemos el algoritmo y luego ponemos las fichas de scratch | ||
Línea 89: | Línea 133: | ||
[[imagen:scratchFechas1.png]] | [[imagen:scratchFechas1.png]] | ||
+ | ;(2) si hay más de 31 días error | ||
+ | <source lang=php> | ||
+ | SI (dias > 31) | ||
+ | escribir "La fecha " + Fecha + "Error por exceso de días " //fecha representa una variable que contiene un valor | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | [[imagen:scratchFechas2.png]] | ||
+ | ;(3) si hay más de 12 meses error | ||
+ | <source lang=php> | ||
+ | SI (meses > 12) | ||
+ | escribir "La fecha " + Fecha + "Error: sólo hay 12 meses" | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | [[imagen:scratchFechas3.png]] | ||
+ | |||
+ | ;(4) Si el mes es de (4,6,9,11) entonces | ||
+ | si hay más de 30 días error | ||
+ | <source lang=php> | ||
+ | <source lang=php> | ||
+ | SI ((mes = 4) o (mes = 6) o (mes = 9) o (mes = 11)) | ||
+ | SI (dia > 30) | ||
+ | escribir "Error : Es un mes de 30 dias" | ||
+ | FIN_SI | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | [[Imagen:scratchFechas4.png]] | ||
+ | ;(5) Si el mes es febrero entonces | ||
+ | si el mes es bisiesto entonces | ||
+ | si hay más de 29 días error | ||
+ | si no | ||
+ | si hay más de 28 días error | ||
+ | *En este caso primero haremos el procedimiento para ver su un mes es bisiesto | ||
+ | *El algoritmo arriba especificado y explicado | ||
+ | <source lang=php> | ||
+ | SI (año mod 4 == 0) | ||
+ | SI (año mod 400 ==0) | ||
+ | bisiesto = si | ||
+ | SI_NO | ||
+ | SI (año mod 100 ==0) | ||
+ | bisiesto = no | ||
+ | SI_NO | ||
+ | bisiesto = si | ||
+ | FIN_SI | ||
+ | FIN_SI | ||
+ | SI_NO | ||
+ | bisiesto = no | ||
+ | FIN_SI | ||
+ | </source > | ||
+ | [[Imagen:scratchBisiesto.png]] | ||
+ | *Ahora nos queda verificar el número de días en un mes de febrero según sea o no el año bisiesto | ||
+ | *El algoritmo | ||
+ | <source lang = PHP> | ||
+ | SI (mes == 2) | ||
+ | SI (bisiesto = si) | ||
+ | SI dias > 29 | ||
+ | Escribir "La fecha "+Fecha+" Error: Es une mes de 29 días (Año bisiesto) | ||
+ | FIN_SI | ||
+ | SI_NO | ||
+ | SI dias > 28 | ||
+ | Escribir "La fecha "+Fecha+" Error: Es une mes de 28 días (Año no bisiesto) | ||
+ | FIN_SI | ||
+ | |||
+ | FIN_SI | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | [[Imagen:scratchFechas5.png]] | ||
+ | |||
+ | *En todos los casos anteriores cuando detectamos que la fecha no es correcta terminamos el programa | ||
+ | ;(6) si no hay error antes, entonces fecha correcta | ||
+ | |||
+ | *Llegados a este punto si no ha terminado el programa mostramos el mensaje de que la fecha es correcta | ||
+ | [[Archivo:scratchFechas6.png]] | ||
+ | |||
+ | ==Modificacion== | ||
+ | *Como hemos visto en clase, a veces puede ser interesante, para probar el programa de forma rápido, que las fechas se generen de forma aleatoria | ||
+ | *Una manera de hacerlo es usando la ficha de operaciones ''''numero al azar entre ...'''' | ||
+ | [[imagen:scratchRandom.png]] | ||
+ | *La ficha anterior generaría un número entre 1 y 10 | ||
+ | *De esta manera podemos generar aleatoriamente valores para día, mes y año dando un rango por ejemplo en dia de 1 a 33 para verificar que si sale un día de 32 mi programa indique el error | ||
+ | [[Imagen:scratchFechasAutomaticas.png]] | ||
+ | *Ahora se trataría de modificar el programa de modo que tengamos dos botones y de esta forma pudiéramos activar que se pida la fecha al usuario o que se genere de forma automáticas | ||
+ | [[Imagen:senales.png]] | ||
+ | *Ahora tenemos tres sprite u objetos en el programas | ||
+ | *Queremos que interactúen entre ellos, para lo cual usaremos envío de mensajes | ||
+ | *Cuando queremos que un objeto le diga algo a otro usaremos la ficha enviar un mensaje | ||
+ | [[Imagen:scratchMsj1.png]] | ||
+ | *Esta ficha enviará un mensaje a todos los objetos o sprite incluido él | ||
+ | *Si queremos que un sprite haga algo cuando reciba un mensaje, debemos usar la ficha de evento '''''al Recibif''''' | ||
+ | [[Imagen:scratchMsj2.png]] | ||
+ | En el programa planteado quedaría de la siguiente manera | ||
+ | ;Botón Preguntar fecha | ||
+ | ;Botón generar fecha aleatoria | ||
+ | ;Acción del sprite principal | ||
+ | --> |
Última revisión de 18:59 29 nov 2021