La secuencia ordenada de
operaciones y procedimientos que se tienen que seguir para resolver una tarea o
un problema se llama algoritmo.
Un algoritmo debe detallar todos
los pasos o acciones que se tienen que seguir cuyo número ha de ser finito; es
decir, ha de acabar ejecutándose alguna vez.
A continuación presentamos
algunos ejemplos sencillos de algoritmos
Para cambiar la lámpara led del
techo de nuestra habitación el algoritmo podría ser el siguiente:
1. Desconectar la corriente en el
cuadro de protección de la vivienda.
2. Colocar la escalera debajo de
la lámpara fundida.
3. Sacar la bombilla.
4. Bajar la escalera.
5. Escoger una bombilla de
características similares a la fundida.
6. Subir a la escalera hasta
llegar al portalámparas.
7. Colocar la bombilla nueva.
8. Bajar de la escalera.
9. Conectar la corriente en el
cuadro de protección.
10. Comprobar que la bombilla
funciona.
Actividades (1)
Contesta
en tu cuaderno las siguientes preguntas, copiando los enunciados completos:
1. ¿Qué pasa si coinciden en la misma orilla el lobo y la
cabra?
2.¿Qué pasa si coindicen
en lamisma orilla la cabra y la col?
3. Si conocemos previamente las características de la
bombilla fundida, podemos ahorrarnos pasos en el algoritmo. Escribe en tu
cuaderno de tecnología el nuevo algoritmo.
En los dos ejemplos anteriores hemos descrito
los algoritmos mediante un lenguaje coloquial. Ahora los describiremos
utilizando gráficos.
1.1. Estructuras básicas de control
Un organigrama o diagrama de flujo es la
representación gráfica de los diferentes pasos que conforman el algoritmo.
Los símbolos básicos utilizados son los siguientes:
Es muy fácil hacer el diagnóstico de averías mecánicas
o eléctricas en artefactos mediante un organigrama.
En el ejemplo de abajo se describe el
agoritmo que se tendría que seguir para reparar el neumático de una bicicleta.
Actividades (2)
Contesta
en tu cuaderno las siguientes preguntas, copiando los enunciados completos:
1. Haz el diagrama de flujo de los dos ejemplos ilustrados.
1.1.1. Estructura secuencial
Es aquella en la que los pasos o acciones se ejecutan uno después de
otro. Para ejecutarse una acción se debe haberse realizado la anterior.
Un ejemplo de estructura secuencial podría ser el cepillado de dientes (una serie de acciones que siempre mantienen un orden)
1.1.2. Estructura condicional
En
este tipo de estructura, la siguiente acción que se ejecuta depende del
estado de cierta condición que se ha de evaluar. Veremos dos tipos de
condicionales:
a) Estructura condicional simple. Consiste en el hecho de que, si se cumple una condición se ejecutará una acción, y si no se cumple no se ejecuta.
b) Estructura condicional doble. Consiste en el hecho de que, si se cumple una condición entonces se lleva a cabo una acción, y si no se cumple se ejecuta otra acción distinta.
Un ejemplo es escoger el precio de un billete de avión según la edad:
un precio para los menores de 12 años y otro para el resto de personas.
1.1.3. Estructura repetitiva
Las
estructuras repetitivas o bucles están formadas por un conjunto de
acciones que se ejecutan un número determinado de veces, o bien
mientras se cumpla una determinada condición.
a) Estructura repetitiva "repetir n veces". Una acción o conjunto de acciones se repiten un cierto número de veces.
Un ejemplo sería tomar un medicamento un número determinado de veces al día.
b) Estructura repetitiva "mientras". Consiste
en el hecho de que la acción se repite mientras se está cumpliendo una
determinada condición que se comprueba cuando inicia la acción.
Un ejemplo es
el algoritmo de pegar sellos en las cartas mensuales que se envían a
todos los padres de los alumnos (mientras quedan cartas, hacer pegar
sellos)
1.2.
Programación por bloques
Los programadores
informáticos emplean lenguajes de programación como C++ o Java, que son
lenguajes que requieren mucho tiempo para aprenderlos. Los programas hechos con
este tipo de lenguajes son difíciles de comprender y el resultado de los mismos
sólo se puede ver cuando se ejecuta el programa.
Existen también
entornos de programación por bloques, como Scratch, App inventor, Robolab,
etc., que facilitan la programación al ser más visuales, permitiendo ver el
resultado del programa a medida que lo vamos realizando, como contrapartida, no
podremos hacer programas muy elaborados.
Ventana
de programación en lenguaje Python
1.3. Scratch
En este tema
vamos a aprender a utilizar Scratch, que es un lenguaje de programación por
bloques creado por el MIT (Instituto Tecnológico de Massachusetts), que permite
crear programas de forma visual, añadiendo bloques que se conectan entre sí.
O podemos
ejecutar Scratch online entrando en la siguiente dirección con nuestro
navegador: https://scratch.mit.edu
La versión
online del programa tiene las partes de la ventana cambiadas de sitio, como
puedes ver en las siguientes imágenes.
En la página
de Scratch podemos encontrar multitud de programas creados por personas de todo
el mundo.
Cuando
entramos en Scratch podemos ver una ventana como la siguiente, en la que se han
indicado las distintas partes de la misma.
Ventana de Scratch con sus partes principales
Veamos el siguiente vídeo de
introducción a Scratch 3.0
Actividades (3)
Contesta
en tu cuaderno las siguientes preguntas, copiando los enunciados completos:
1. ¿Qué es un programa?
2.¿Qué es un lenguaje de
programación? Nombra los que conozcas.
3.¿Qué es un lenguaje de
programación por bloques? Nombra los que conozcas.
4. Dibuja la ventana de Scratch, señalando sus partes
princpales.
2. LOS PRIMEROS PASOS
Como hemos visto,
en la ventana de ejecución de Scratch hay dos iconos: la bandera verde
que hace que se inicie el programa y el botón rojo, que detiene la
ejecución. Es conveniente comenzar nuestro programa siempre con la orden "al
presionar la bandera verde", que se encuentra dentro de los bloques de
eventos (color marrón).
En la pestaña de
Programas Hay varias categorías de órdenes; al pulsar sobre una de ellas, se
despliegan todas las órdenes correspondientes a esa categoría. Podemos ver lo
que hace una orden pulsándola directamente.
Vamos a pulsar la
categoría Movimiento (color azul oscuro) y vamos a elegir la
orden "mover (...) pasos", hasta conseguir un programa como el
siguiente (Si se desea que el personaje ande más pasos, basta con cambiar la
cantidad de pasos pulsando sobre el número):
Nuestro primer programa
En la categoría Movimiento también
está la orden "girar (...) grados", que permite que el gato gire sobre
su eje una cantidad de grados determinados.
También está la orden "apuntar
en dirección (...)" que nos permite situar el gato en distintas
posiciones.
Además, la orden "ir a x:(...)
y:(...)" nos permite situar al gato en un punto concreto de la pantalla.
En el siguiente programa utilizamos los bloques arriba señalados para mover el objeto GATO en cualquier dirección.
Las coordenadas x e y máximas y mínimas en Scratch son las siguientes:
ACTIVIDADES (4)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1.Crea un programa en el
que el gato avance 20 pasos cada vez que se pulse la bandera verde.
2.Haz un
programa en el que el gato gire 45 grados y luego avance 50 pasos cada vez que
se pulse la bandera verde.
3.Coloca el gato en la esquina superior izquierda y haz un
programa para que ande hasta la esquina superior derecha, luego baje hasta la
esquina inferior derecha, luego vaya hasta la esquina inferior izquierda y
luego vuelva a la posición inicial. (Si lo haces bien, parece que el gato no se
mueve).
2.1. Dibujando con Scratch
Podemos hacer que el
personaje dibuje una línea mientras se desplaza, para ello hay que pulsar el
icono de añadir extensión que se encuentra en la esquina inferior izquierda de
la pantalla y elegir la extensión "Lápiz".
Al volver atrás, vemos
que se ha creado una nueva categoría llamada Lápiz, con varios bloques
verdes en su interior.
Veamos para qué sirven
algunos de esos bloques:
Si ponemos el bloque
"bajar lápiz" antes de mover, veremos que Scratch va dibujando
una línea mientras se mueve.
Si queremos que el personaje
deje de dibujar, hay que utilizar el bloque "sube lápiz".
La orden "sellar"
hace que el personaje se quede dibujado en el lugar en el que se encuentra.
La orden "borrar
todo" nos permite borrar todos los trazos hechos en la pantalla de
Scratch; se suele incluir al principio de los programas para limpiar trazos de
programas anteriores.
2.1.1. Cambiando las características del lápiz
Dentro
de la categoría Lápiz existen una serie de órdenes que permiten ajustar
el grosor ("fijar el tamaño de lápiz a 1") y el color del
lápiz ("fijar color de lápiz a ") para dibujos con distintas
líneas.
En
el siguiente ejemplo hemos dibujado un triángulo equilátero con lados de grosor
5 y de tres colores distintos.
Observa
como en el ejemplo anterior se han empleado las órdenes "subir
lápiz", "borrar", "ir a x:-120 y:80"
y "apuntar en dirección 90º" para que el programa siempre se
inicie con la pantalla en blanco y con el gato situado en un punto concreto.
Veamos
el siguiente vídeo donde se explica el uso del lápiz y se hace un pequeño
programa para dibujar polígonos.
Actividades (5)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1.Crea un programa en el
que el personaje avance 90 pasos dibujando una línea en color rojo, de grosor
5, a continuación debe girar 72 grados y repetir los pasos anteriores durante 5
veces (Sin utilizar estructuras de repetición). ¿Qué figura se ha obtenido?
2.Crea un programa en el
que el personaje dibuje un rectángulo de 200 pasos de ancho y 100 pasos de
alto.
3.Crea un programa que
dibujo un patrón parecido al siguiente:
2.2. Estructuras repetitivas
En
los ejercicios anteriores hemos tenido que repetir varios bloques para
conseguir dibujos con partes repetidas, como el triángulo o las líneas
discontinuas.
Dentro
de la categoría Control existen estructuras que permiten repetir los
bloques que introduzcamos dentro: el bloque llamado "repetir (,,,)"
y el bloque llamado "por siempre".
En
los siguientes ejemplos se ha empleado el bloque de repetición "repetir
(4)" para dibujar un cuadrado sin definir lado por lado y en el
segundo ejemplo, se ha utilizado el bloque de repetición "por siempre"
para no tener que estar moviendo continuamente al personaje. (Si no has quitado
el lápiz, se hace un dibujo muy chulo).
Otras estructuras
repetitivas son: "repetir hasta que (...)", que repite hasta
que pasa "algo", como pulsar una tecla, chocar contra el borde, etc.
y el bloque "esperar hasta que (,...)", que espera hasta que
pasa "algo". Programas muy utilizados en juegos con movimiento.
En los siguientes
ejemplos podemos observar el funcionamiento de dichos bloques:
Actividades (6)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1. Crea un programa que dibuje un octógono de color azul.
En el programa solamente puedes utilizar una vez las siguientes instrucciones.
2. Dibuja una estrella multicolor de 36 puntas. Para
ello, debes dibujar 36 veces un lado de longitud 120 y girar 170 grados para
dibujar el siguiente.
Añade el
siguiente bloque para cambiar de color:
3. Dibuja una estrella de 12 puntas multicolor, que tenga
12 lados de longitud 110 y girará 150 grados en cada trazo.
4. Crea un programa en el que el personaje gire 15 grados
cada vez que se pulse la tecla g. (Para conseguirlo, utiliza el siguiente
bloque)
3. OPERADORES Y ESTRUCTURAS SELECTIVAS
Dentro de la categoría Operadores existen
las operaciones matemáticas básicas +, -, *, /, números aleatorios y otras
funciones para unir palabras.
Las estructuras selectivas se
utilizan para tomar decisiones y hacer una cosa u otra dependiendo de si se
cumple una condición o no.
Las condiciones básicas son "Si..."
y "Si... , sino..." y están dentro de la categoría
Control (color
naranja) Veamos unos ejemplos para aclarar su uso:
El operador "modulo" nos
da el resto de una división, por lo tanto podremos identificar los números
pares si dividimos por 2 y el resto es 0.
También existen operadores para realizar
operaciones con letras y palabras.
Para obtener un número al azar o
"aleatorio" entre dos cantidades, se utiliza el siguiente bloque
Actividades (7)
Abre Scratch y realiza las siguientes actividades escribiendo previamente
los diagramas de flujo.
1. Prueba los cuatro programas vistos anteriormente.
2. Crea un programa en el que te pregunte un número y luego te diga
un número al azar entre 0 y el que tu has dicho
3. Crea un programa que pregunte un número y diga si es múltiplo de 10.
4. Con el programa de la derecha, se puede dibujar un círculo (realmente
es un polígono de 72 lados). Amplia el programa para que dibuje 10 círculos
de distintos colores en posiciones de la pantalla al
azar.
4. OBJETOS Y ESCENARIOS
Scratch desarrolla historias en un
escenario en el que se pueden incluir distintos personajes y objetos que pueden
ser programados de forma individual.
4.1. Escenarios
El
escenario es la zona donde se muestran los personajes y objetos, cada escenario
lleva asociados sus propios fondos, sonidos y programas:
*Fondos:
Son los escenarios de nuestros programas, pueden ser incluidos de la biblioteca
de Scratch, subidos desde el ordenador o capturados desde una cámara web. Los
fondos pueden ser cambiados durante el programa.
*Sonidos:
Cada escenario tiene unos sonidos asociados que pueden obtenerse en la
biblioteca de Scratch o pueden subirse desde el ordenador o grabarse a través
del micrófono.
*Programas:
Son los bloques de instrucción que definen el comportamiento del fondo: cambiar
de fondo, crear efectos, añadir sonidos, etc.
En
el siguiente ejemplo se han incluido dos nuevos fondos llamados
"castle1" y "castle2" de la biblioteca; mediante el
siguiente programa se puede cambiar el fondo al pulsar las teclas 1 y 2.
4.2. Objetos
Los
objetos son los personajes que podemos utilizar en nuestros programas de
Scratch, al igual que los fondos, podremos elegirlos de la biblioteca,
dibujarlos en el mismo programa, cargarlos desde el ordenador o desde una
cámara web.
Y
al igual que los escenarios, cada objeto lleva asociados sus propios disfraces,
sonidos y programas:
*Disfraces:
Los disfraces son las distintas formas que puede adoptar un objeto, de esta
forma podemos simular un personaje que anda, vuela o se mueve.
*Sonidos:
En la biblioteca existen sonidos para cada personaje que
pueden utilizarse durante el programa del objeto.
*Programas:
Son los bloques que definen el comportamiento de cada personaje. Cada
personaje tiene su propia área de programas. Para hacer que se ejecuten
todos los programas, hay que pulsar la bandera verde que hay encima de la
ventana de ejecución.
En
el siguiente ejemplo se ha realizado un programa para cada personaje, si
presionamos la bandera de cada personaje, solo se moverá ese personaje, pero si
presionamos la bandera verde de la ventana de ejecución, podremos ver cómo se
mueven ambos personajes.
Actividades (7)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1. Elige un personaje que tenga varios disfraces
(por ejemplo el tiburón) y un escenario adecuado. Haz que se mueva por el
escenario.
2. Crea una historia en el que dos personajes
conversen entre sí, puedes sincronizar los diálogos utilizando el siguiente
bloque que hace que un personaje espere un tiempo determinado.
3. Simula un personaje que pasa de una zona a otra
de un juego, por ejemplo elige dos fondos de la categoría "ciudad" y
haz que el personaje se mueva hacia la derecha. Cuando toque el borde, cambia
el fondo y haz que el personaje aparezca a la izquierda.
5. ANIMACIONES
Una
animación consiste en crear la sensación de que el personaje se mueve,
cambiando disfraz alternativamente, por eso la mayoría de los personajes de
Scratch disponen de varios disfraces que podemos ver y editar en la pestaña disfraces.
5.1. Tamaño del personaje
En
ocasiones también podemos conseguir la animación de un personaje cambiando su
tamaño, así podemos crear el efecto de que el mismo se aleja o se acerca a
nosotros.
5.2. Efectos en el personaje
Dentro de la categoría
"Apariencia" se encuentra el bloque "cambiar efecto", que
nos permite hacer cambios en el aspecto del personaje, como cambiar su color,
verlo a vista de ojo de pez, pixelarlo, desvanecerlo, hacerlo más brillante,
aplicarle un remolino, etc.
Actividades (8)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1. Utiliza el gato para dibujar una línea de 180 pasos.
Tras cada paso cambiará de disfraz y esperará un segundo. Cuando termine, tu
personaje deberá pensar "Esto es fácil" durante tres segundos.
2. Crea un programa en el que aparezca un personaje que
se acerque y se aleje al caminar, cambiando de disfraz con cada paso.
3. Aplica una deformación de ojo de pez a tu personaje.
Debes aplicar el efecto de 10 en 10, repetirlo 50 veces y hacer una pausa de
0.1 segundo entre una repetición y la siguiente.
6. VARIABLES
A
veces necesitamos guardar un dato a lo largo de un programa, como la puntuación
de un juego; en estos casos, Scratch dispone dentro de la categoría Variables
de unos bloques que nos permiten crear variables a las que damos un nombre
y que guardan datos durante el programa.
En el siguiente ejemplo se han usado dos
datos " Respuesta1" y "Respuesta2" para guardar los dos
números que nos preguntan.
Solo aparecen los
bloques naranjas cuando creamos al menos una variable.
Los datos pueden
ir cambiando durante la ejecución del programa, como en el siguiente ejemplo,
en el que hemos creado una variable llamada lado cuyo valor inicial es 10, pero
que se incrementa en 5 con cada paso del bucle, para ir incrementando el lado
de la espiral cuadrada.
Actividades (9)
Abre
Scratch y realiza las siguientes actividades escribiendo previamente los
diagramas de flujo.
1. Prueba los dos ejemplos vistos antes.
2. Copia y ejecuta los siguientes juegos sencillos.
Juego 1: Intenta
tocar el gato que se mueve aleatoriamente por toda la pantalla.
Juego 2: ¿Puedes
adivinar el número en el que está pensando la hechicera? (Fíjate cómo hemos
desactivado la variable "número secreto" para que no se vea en
pantalla).
Muy bien, ya eres todo un programador o una
programadora de juegos, ¿Ahora, por qué no pruebas uno de los siguientes hechos
con Scratch?: