Diferencia entre revisiones de «Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/Ejemplos2»
De WikiEducator
< Usuario:ManuelRomero | Scratch | Contenidos
(Página creada con «{{:Usuario:ManuelRomero/Scratch/Contenidos/Ejemplos/nav}} {{Objetivos| En este caso implementaremos problemas un poco más complicados Para resolverlos intentaremos hacer p...») |
|||
Línea 7: | Línea 7: | ||
:no es que sean muy sencillas sino que el ordenador entiende, interpreta y ejecuta | :no es que sean muy sencillas sino que el ordenador entiende, interpreta y ejecuta | ||
− | |||
{{Actividad|Pedir una fecha y deciŕ si es correcta o no y porqué motivo (solo el primer motivo que se encuentre. | {{Actividad|Pedir una fecha y deciŕ si es correcta o no y porqué motivo (solo el primer motivo que se encuentre. | ||
*Ha de tener en cuenta que el número de días será | *Ha de tener en cuenta que el número de días será | ||
Línea 15: | Línea 14: | ||
}} | }} | ||
*Como ponen en el enunciado vamos a entender cuando una fecha no es correcta | *Como ponen en el enunciado vamos a entender cuando una fecha no es correcta | ||
− | Si el mes está fuera de los valores 1 hasta 12 la fecha es incorrecta | + | *Si el mes está fuera de los valores 1 hasta 12 la fecha es incorrecta |
− | <source lang= | + | *Para simplificar el problema vamos a dar por supuesto que los datos son siempre positivos |
− | si ( | + | <source lang=php> |
− | escribir "Fecha incorrecta | + | si ( mes > 12) |
− | + | escribir "Fecha incorrecta solo hay 12 meses | |
+ | fin_si | ||
</source> | </source> | ||
+ | El caso de día vamos a establecer criterios en funcion de meses | ||
+ | <source lang=php> | ||
+ | SI (dia > 31) | ||
+ | escribir "Fecha incorrecta día no puede ser mayor de 31" | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | |||
+ | <source lang=php> | ||
+ | SI ((mes = 4) o (mes = 6) o (mes = 9) o (mes = 11)) | ||
+ | SI (dia > 30) | ||
+ | escribir "Fecha incorrecta día no puede ser mayor de 31" | ||
+ | FIN_SI | ||
+ | FIN_SI | ||
+ | </source> | ||
+ | |||
+ | ;Ahora viene el caso de cuando el mes es febrero '''''2''''' | ||
+ | *En este caso debemos comprobar si un año es bisiesto | ||
+ | *Como ya hemos explicado un año bisiesto tiene que ser divisible entre 4 '''''(valor_año mod 4 = 0)''''' | ||
+ | *Pero no todo este grupo de años es bisiesto. | ||
+ | *De estos años los que sean divisibles por 400 SEGURO que son bisiestos | ||
+ | *Los que no sean divisibles por cuatrocientos depende | ||
+ | **Si son divisibles por 100 , entonces no son bisiestos | ||
+ | **Si no lo son , entonces, sí que son bisiestos | ||
+ | *Algorítmicamente quedaría | ||
+ | <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 > | ||
+ | *Ahora vamos a hacer el código en scratch | ||
+ | Hacemos el algoritmo por partes | ||
+ | Sabemos que nuestro programa (el análisis) sería | ||
+ | (1)Pedir los datos de dia mes y año | ||
+ | (2) si hay más de 31 días error | ||
+ | (3) si hay más de 12 meses error | ||
+ | (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 | ||
+ | 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 | ||
+ | *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 | ||
+ | ;(1)Pedir los datos de dia mes y año | ||
+ | <source lang=php> | ||
+ | Escribir "Dime un valor para día" | ||
+ | leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia | ||
+ | Escribir "Dime un valor para día" | ||
+ | leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia | ||
+ | Escribir "Dime un valor para día" | ||
+ | leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia | ||
+ | Fecha = dia + "/" + mes + "/" + year | ||
+ | Escribir "Voya a pensar a ver si la fecha es correcta " + Fecha | ||
+ | </source> | ||
+ | |||
+ | [[imagen:scratchFechas1.png]] |
Revisión de 02:04 13 feb 2016
En este caso implementaremos problemas un poco más complicados Para resolverlos intentaremos hacer previamente un algoritmo |
Algoritmo: Conjunto de instrucciones básicas que ejecutadas en el orden especificado solucionan un problema previamente planteado |
- básicas
- no es que sean muy sencillas sino que el ordenador entiende, interpreta y ejecuta
- Como ponen en el enunciado vamos a entender cuando una fecha no es correcta
- Si el mes está fuera de los valores 1 hasta 12 la fecha es incorrecta
- Para simplificar el problema vamos a dar por supuesto que los datos son siempre positivos
si ( mes > 12) escribir "Fecha incorrecta solo hay 12 meses fin_si
El caso de día vamos a establecer criterios en funcion de meses
SI (dia > 31) escribir "Fecha incorrecta día no puede ser mayor de 31" FIN_SI
SI ((mes = 4) o (mes = 6) o (mes = 9) o (mes = 11)) SI (dia > 30) escribir "Fecha incorrecta día no puede ser mayor de 31" FIN_SI FIN_SI
- Ahora viene el caso de cuando el mes es febrero 2
- En este caso debemos comprobar si un año es bisiesto
- Como ya hemos explicado un año bisiesto tiene que ser divisible entre 4 (valor_año mod 4 = 0)
- Pero no todo este grupo de años es bisiesto.
- De estos años los que sean divisibles por 400 SEGURO que son bisiestos
- Los que no sean divisibles por cuatrocientos depende
- Si son divisibles por 100 , entonces no son bisiestos
- Si no lo son , entonces, sí que son bisiestos
- Algorítmicamente quedaría
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
- Ahora vamos a hacer el código en scratch
Hacemos el algoritmo por partes Sabemos que nuestro programa (el análisis) sería
(1)Pedir los datos de dia mes y año (2) si hay más de 31 días error (3) si hay más de 12 meses error (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 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
- 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
- (1)Pedir los datos de dia mes y año
Escribir "Dime un valor para día" leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia Escribir "Dime un valor para día" leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia Escribir "Dime un valor para día" leer día //Esto es guarar el valor que haya escrito el usuario en la variable dia Fecha = dia + "/" + mes + "/" + year Escribir "Voya a pensar a ver si la fecha es correcta " + Fecha