Diferencia entre revisiones de «Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/Ejemplos2»

De WikiEducator
Saltar a: navegación, buscar
 
(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
+
        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 el mes es bisiesto entonces
      si hay más de 29 días error
+
        si hay más de 29 días error
    si no  
+
      si no  
      si hay más de 28 días error
+
        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