Usuario:ManuelRomero/Scratch/programación

De WikiEducator
Saltar a: navegación, buscar





Qué es programar

  • Programar es resolver un problema de una manera concreta.
  • Es dar instrucciones para que se realice un determinado algoritmo.
  • Es interesante hablar de estos conceptos, si bien los trataremos mas adelante pero los necesitamos desde el principio.



Icon key points.gif

Puntos clave

Programar es algo tan cotidiano y normal que nos pasa desapercibido.




Icon reflection.gif
Reflexiona
Vamos a identificar cuestiones diarias que sean posibles ejecuciones de programas




Icon define.gif
Qué es la programación
  • La programación consiste en encontrar un algoritmo que resuelva un problema planteado


  • Simplemente el no saber que continuamente estamos realizando algoritmos es una falta de conscieciencia de ello , ya que lo hacemos de forma automática continuamente


Icon casestudy.gif
Ejemplos de algoritmos cotidianos
  • Lavar dientes
  • Cruzar la carretera



Icon qmark.gif
Qué es un algoritmo

Dado un problema de naturaleza lógica

un algoritmo es una secuencia de acciones 
concreta y bien definida
que ejecutadas todas ellas y en el orden establecido
van a dar solución al problema planteado



Icon qmark.gif
Características de un algoritmo
Un algoritmo debe de
Ser finito (debe de terminar en algún momento (no necesariamente su ejecución).
Debe de ser concreto.
Siempre dará ante las mismas entradas, la misma salida.
Concreto y bien definido (parecerá un término impreciso, pero es muy importante).



  • Resolver problemas es algo habitual y contidiano
  • Lo hacemos sin ser conscientes de lo que estamos haciendo
  • A veces lo hacen sin saber como lo han hecho
  • Es una invitación a la reflexión, a la tranquilidad a la hora de hacer algo



Icon key points.gif

Puntos clave

  • QUÉ QUIERO HACER
  • CÓMO LO VOY A HACER
  • PUES VENGA VAMOS A HACERLO


Pautas a la hora de hacer un programa
  • Vamos a ver sobre la marcha los conceptos, si bien en el siguiente tema los formalizaremos
  1. primero saber qué quiero hacer
  2. buscar información para ver cómo lo puedo hacer
  3. realizarlo y analizo los resultados viendo posibles mejoras que puedo aplicar


Conceptos básicos en la programación



Icon objectives.jpg
Objetivo
  • A continuación y aprovechando como ejemplo de lenguaje de programación Scratch vamos a analizar brevemente los elementos que intervienen en un programa de alto nivel.


Icon reflection.gif
Reflexión
Los programas los ejecuta el ordenador elemento binario que solo sabe de 1's y 0's
Los programas los escribimos las personas en un lenguaje compresible para nosotros
  • Evidentemente de alguna forma hay que pasar de uno a otro de forma automática



Algunas conceptos importantes que ya veremos

Programa

Un programa va a ser un conjunto de instrucciones que se ejecutan para resolver un problema planteado Programa1.png </div


Programa: conjunto de instrucciones



Icon define.gif
Programa como conjunto de instrucciones
Un programa es un conjunto de instrucciones que van a resolver un problema
  • Estas instrucciones las vamos a agrupar en tres tipos
Instrucciones de estructuras  secuenciales
Estructuras Seleectivas
Estructuras repetitivas





Icon qmark.gif
Qué es una instrucción
Es una acción concreta a realizar

A continuación vamos a ver ejemplos de instrucciones

  1. .- Instrucción de selección
  2. .- Instrucción de repetición
  3. .- Instrucciones secuencales:
    1. .- Declaración de variables
    2. .- Asignación
    3. .- Declaración de bloques o funciones
    4. .- Invocación de funciones, subprogramas, objetos, ....
    5. .- Instrucción de inicio
    6. .- Instrucción de fin



Instrucción de secuenciales

  • Son ordenes o acciones que se ejecutan una detrás de otras
  • Es muy habitual que la orden sea llamar a un subprograma ya establecido(invocacion a subprogramas)
  • Dentro de estas instrucciones veremos el concepto de las variables
  • Es importante la instrucción de inicio y fin, de alguna forma el programa ha de empezar a ejecutarse
  • En scratch, esta instrucción viene con un determinado evento, en lenguajes estructurados venrá con una apertura de llave que representa el inicio
  • Esta es una diferencia de scratch, tengo que especificar cuándo se va a ejectuar cada bloque de instrucciones y lo haremos mediante eventos que ocurren

ScratchInicio.png

Instrucción de selección




Icon qmark.gif
Instrucción de selección
  • Permite determinar situaciones especiales en nuestro programa
  • Esta estructura tiene la siguiente forma
 Si (condicion) entonces
  accion_1
  accion_2
  accion ....
 fin SI
  • Donde condicion es una expresión booleana es decir algo que se evalúa, y me da como resultado verdad o falso.



  • Responde a una lógica continua en nuestra vida, continuamente estamos haciendo cosas si .....
Si hace frío (condición)
   me pongo el abrigo (accion) 
fin si
Si comida fria (condición)
   la caliento (accion) 
fin si
Si tocando borde (condición)
   llevar la bola al principio (accion) 
fin si

ScratchCondicion1.png ScratchCondicion2.png



Icon activity.jpg
generar un número aleatorio
  • Generamos una edad aleatoria entre 1 y 60
  • Decimos si es o no mayor de edad





Icon activity.jpg
Actividad
  • Si toco al gato con el ratón,
  • que diga miau durante 2 segundos




Instrucción de repetición





Icon qmark.gif
Instrucción de repetición o bucle
  • En este caso vamos a repetir una serie de veces un conjuto de acciones
  • Puede ser que quereamos repetir algo de forma infinita (mientras dure la ejecución del programa)
Icon present.gif
Tip: Este tipo de bucles son bucles infinitos


BucleInfinito.png

  • Puede ser que sepa cuántas veces quiero repetir un bucle
Icon present.gif
Tip: Este tipo de bucles son contadores


BucleContador.png

  • Puede ser que establezca una condicion booleana para establecer hasta cuando quiero repetir el bucle
Icon present.gif
Tip: Este tipo de bucles son bucles con condición boleana


BucleCondicion.png




Icon activity.jpg
Iteraciones
  • Cuando apretamos la tecla C de crecer queremos que el sprit se haga más grande en 10 crecimientos, esperando un segundo entra cada incremente de tamaño.

Igualmente si aprieto de P de pequeñó queremos que el sprit se haga más grande en 10 crecimientos, esperando un segundo entra cada incremente de tamaño.





Icon activity.jpg
Iteraciones
  • Cuando apretamos la C de crecer queremos que el sprit crezca hasta que toque el borde, luego que vuelva a su tamaño normal



Variables




Icon qmark.gif
Instrucción de declarar variables
Una variable es una posición de memoria,
En cuyo interior vamos a almacenar un valor de algún tipo
y  cuyo contenido puede ser  modificado durante la ejecución del programa.
  • Es una parte muy importante en la programación.

DeclararVariable.png


  • Una vez creada la variable, la utilizaremos de dos maneras:
Para asignarle un valor

AsignacionVariable.png

Para operar con ellas.

Aquí aparece un nuevo término de programación que son 'las expresiones'


Icon define.gif
expresión

Una expresión es un conjunto de valores y operadores que tras evaluarse obtenemos un resultado.


Icon casestudy.gif
expresión aritmética
Son los operadores conocidos de matemáticas, y dan como resultado un número
8+5;
9*7;
9/7;
7-6M
9%4;

OperacionesAritmeticas.png




Icon casestudy.gif
expresión booleanas
Son los operadores lógicos , y dan como resultado un valor booleano, True o False
8>5;
9<7;
No Verdad;
Expresión_1 AND Expresion_2

OperacionesLogicas.png




Icon casestudy.gif
expresión sobre cadenas
Son los operadores sobre cadena de caracteres
"Cadena una " unir "Cadena 2"
contar Caracteres ("cadena")

OperacionesCaracteres.png






Icon key points.gif

Muy importante


UNA EXPRESIÓN, NO ES UNA INSTRUCCIÓN. ES PARTE DE ELLA.



Instrucción de secuenciales de asignación




Icon qmark.gif
Instrucción de asignación

1.- Una asignación

color = "red"

AsignacionScratch.png



Ejemplos


Icon activity.jpg
Contador
  • Modifica el ejercicio de decir si una edad (número aleatorio entre 1 y 30) es mayor de edad o no, haciendo que nos muestre la edad





Icon activity.jpg
Tabla de multiplicar
  • Genera un número aleatorio, y muestra su tabla de multiplicar




Instrucción de secuenciales de declaración de bloques

  • Declarar un bloque es una acción muy frecuente en programación
  • Se trata de intentar hacer un pequeño subprograma para ser posteriormente utilizado
  • Es una forma de poder organizar mejor el código y escribir un programa principal utilizando bloques
  • Crear un bloque o función, es otra instrucción de declaración.
  • Crear bloques, es una forma de programar modular y estructurada, es decir modularizamos nuestro programa, y cada módulo o bloque usamos la programación estructruada (secuencias, selección, iteracción).
  • Cuando hablamos de bloques también nos referimos a módulos, subprogramas, y lo concretaremos en funcionesy clases(objetos) con sus métodos que estudiaremos más adelante.


Icon activity.jpg
Actividad
 declaracion_bloque(){
   accion_1
   accion_2
   ......
 }

BloquesScratch.png



  • Para crear bloques debemos de seleccionar la acción


Icon activity.jpg
Creando bloques
  • Vamos a hacer un programa que se presente el sprite, nos diga algo y se despida,
  • Quieremos que el programa principal sea con bloques, de forma que el programa principal debe ser

Bloques1.png




Crear clones

  • Esta es una práctica que se hace en scratch.
  • En la programación estructurada también lo haremos cuando tengamos una clase, y creemos diferentes objetos de la misma clase.
  • Consiste en duplicar todo el elemento (tanto gráfico como funcional)
  • Es conveniente siempre, después de crear un clone, eliminarlo
  • Vamos a ver cómo se hace en este entorno de programación


Icon activity.jpg
Crear un clone en scratch
  • La ficha o instrucción, la tenemos en control

Crear clone.png






Icon activity.jpg
Hacer una nevada mediante clones
  • Elige un sprite de Snowflake

Snowflake.png




Comunicación entre sprites

  • Aunque sea un aspecto muy propio de los scratch, es necesario ver cómo los diferentes sprites u objetos se puedan comunicar.
Por ejemplo cuando ocurra una determinada situación en un sprite y otros se reciban una comunicación de ello.
  • Es una forma de hacer que los diferentes elementos se puedan ver o comunicar unos con otros.
  • Hasta ahora vemos cómo las diferentes fichas o instrucciones que tenemos son para cada uno de los sprite.
Bloques scratch.png
  • Pero puede ser muy frecuente que desde un sprite queramos saber si a otro le ha ocurrido una determinada situación
  • Para ello crearemos un mensaje

Crear mensaje.png

  • Una vez creado, cuando queremos (el evento que controlemos) un objeto enviará un mensaje, como podemos ver en la imagen anterior.
  • En el otro scratch podemos establecer la condición, cuando recibamos el mensaje

Recibir mensaje.png


Icon activity.jpg
Prueba con mensajes
  • Podemos añadir un botón (sprite)en cualquier de nuestros ejemplos realizados, por ejemplo el muñeco que se presentaba.
  • Cuando apretemos con un click, que desaparezca el botón y empiece el programa.



Ejercicios



Icon activity.jpg
Propuesta juego de pajaritos
  • Vamos a hacer un programa de cazar pajaritos
  • Tendremos dos tipos de pajaritos (bueno y malo), y un visor para cazarlos

Pajaritos sprite 1.png

  • Si tocamos los pajaritos malos vamos sumando puntos
  • Si tocamos los pajaritos buenos, vamos restando vidas (tendremos 3 vidas)
  • El programa consiste en que vayan apareciendo pajaritos buenos y malos de izquierda a derecha (clones de los pajaritos), y que vayamos contando y descontando un marcador, según vayamos tocando con el visor a los pajaritos
  • El juego termina si hemos acabado las vidas o hemos cazado 30 pajaritos malos






Icon activity.jpg
Ping pong
  • Realizamos un juego para jugar a la pelota
  • Tendremos una barra vertical y una pelota

Ping sprite.png

  • El juego consiste en que vayamos rebotando la pelota según la damos y si toca el borde rebota
  • Si no la damos perdemos una vida (Para ello deberemos controlar de alguna forma si se nos pasa)
  • Controlamos cuando la toquemos con qué dirección rebota