miércoles, 9 de diciembre de 2015
Formas de escribir un algoritmo
FORMAS DE ESCRIBIR UN ALGORITMO
- LENGUAJE NATURAL
- DIAGRAMAS DE FLUJO
Tomemos como ejemplo el algoritmo para encontrar las raíces de una ecuación de segundo grado.
Si lo expresamos con LENGUAJE NATURAL, tendríamos que señalar los siguientes pasos:
1. Definir los coeficientes de la ecuación de segundo grado, a, b y c
2. Determinar el valor del discriminante
3. Si el discriminante es cero, sólo hay una solución:
4. Si el discriminante es positivo, pero no cero, entonces hay dos soluciones:
5. Si el discriminante es negativo, entonces no hay soluciones reales
ESTA REPRESENTACIÓN NATURAL TIENE VENTAJAS E INCONVENIENTES:
VENTAJAS: Facilidad de comprensión
INCONVENIENTES: El lenguaje natural no es universal; es inútil para los no hispanohablantes (en este caso). Es ambiguo y, por tanto, susceptible de errores. Y es demasiado amplio, instrucciones demasiado largas.
POR TANTO, ES MEJOR ACOSTUMBRARSE A UTILIZAR DIAGRAMAS DE FLUJO.
VEAMOS ASÍ EL EJEMPLO ANTERIOR.
VENTAJAS: Símbolos Universales. Menos propensos a la ambigüedad. Número pequeño de bloques, Forma constructiva más semejante a cómo trabaja un ordenador.
INCONVENIENTES: Necesidad de conocer su simbología. Sigue utilizando lenguaje natural dentro de sus bloques. Su representación puede resultar tediosa y confusa si el algoritmo es muy grande. Un ordenador no es capaz de utilizar una representación visual como descripción de un algoritmo.
LOS ORGANIGRAMAS DEBEREMOS UTILIZADOS PARA PLANTEAR NUESTRO PROBLEMA Y PODER RESOLVERLO MEDIANTE UN LENGUAJE DE PROGRAMACIÓN, COMO PUEDE SER SCRATCH
Qué es un algoritmo
¿QUÉ ES UN ALGORITMO?
Es un conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para resolver un problema.
Cada instrucción es una indicación sencilla y no ambigua.
Características principales que debe tener un algoritmo:
- Debe ser comprensible y preciso, indicando el orden de realización de cada paso
- Debe ser predecible, si se aplica partiendo de la misma situación incial, debe obtenerse siempre el mismo resultado
- Debe ser finito, debe terminar en algún momento, con un número finito de pasos
- Debe tener un conjunto de entradas y salidas definidas y precisas
UN LENGUAJE DE PROGRAMACIÓN NO ES MÁS QUE UN MEDIO PARA EXPRESAR UN ALGORITMO
Y UNA COMPUTADORA NO ES MÁS QUE UN PROCESADOR PARA EJECUTARLO
SCRATCH Y ARDUINO
En el mundo
actual vivimos rodeados de tecnología y parece interesante que los alumnos de secundaria comprendamos el funcionamiento de los dispositivos
automáticos. Son dispositivos con los que se interacciona a través de
botones o diferentes sensores de modo que generan efectos en forma de
sonidos, luces o movimiento. Suponemos que cualquiera de estos
aparatos tiene cierta inteligencia, capacidad de memorizar e incluso
pueden detectar lo que sucede a su alrededor. Sin embargo, para la
mayoría de nosotros se muestran como objetos dotados de cierta magia
y muy pocas personas sabrían explicar de un modo sencillo cómo
funcionan.
La interacción
de estos dispositivos con variables físicas como luz, temperatura o
movimiento se produce a través de sensores cuyas señales deben ser
procesadas por nuestro protagonista principal, el microcontrolador que es un chip programable que contiene instrucciones precisas de cuál será
la respuesta del dispositivo hacia el mundo físico exterior.
Además la
automatización es interesante desde el punto de vista didáctico ya
que permite poner en práctica gran parte de los conocimientos que a
estas alturas y como alumnos de tecnología ya debemos de tener.
¿Cómo puede un
dispositivo interactuar con el entorno?
Ya conocemos los
fundamentos de la programación en Scratch y ahora vamos ponerlos en
práctica para interactuar con el entorno, gracias a la placa Arduino
nuestro programa podrá reaccionar de la manera que nosotros
establezcamos a ciertas señales que le lleguen del exterior.
Usaremos para ello S4A (Scratch for Aruino) que es igual que Scratch
pero preparado para comunicarse con Arduino.
¿Qué es
Arduino?
Arduino es una
placa electrónica inteligente, que nos permite interactuar con el
entorno, ya que dispone de varias entradas y salidas, las cuales
trabajan a 5v, por lo tanto si trabajamos a otras tensiones debemos
adaptarlas.
¿Cómo funciona?
Utilizar S4A y
Arduino es muy sencillo, si por ejemplo queremos saber si un botón
esta pulsado, solo tenemos que preguntarlo mediante programa:
Lo mismo si
queremos enviar una señal al exterior, para por ejemplo poner una
luz en rojo:
Como la mejor forma de aprender algo es haciendolo, vamos a construir y automatizar un parking, en el que estén
controlados varios parámetros mediante un programa. Este será
realizado mediante el lenguaje Scratch, en el que se establecerá la
lógica de funcionamiento, para el contacto con el mundo exterior se
utilizará la placa Arduino, que permite explorar señales o entradas
y enviar señales al exterior o salidas.
Instrucciones
para realizar el proyecto
En equipos de tres o cuatro intragrantes debemos
construir una maqueta de un parking y automatizarla. Esta dispondrá de una barrera que permita o
impida la entrada de vehículos. Este parking tiene una capacidad
máxima de 20 plazas, cuando esta capacidad sea alcanzada debe evitarse
la entrada de más vehículos, no abriendo la barrera y estableciendo
el semáforo en rojo, esta condición debe mantenerse hasta que alguno de los vehiculos abandone el parking.
Además cuando entre un vehículo debe encenderse la luz del parking durante 30 segundos, para dar tiempo a que el vehículo aparque, al igual que si se pulsa el botón de encendido de la luz dentro del garaje.
A modo unicamente de ejemplo vamos a ver unas imagenes de una de las posibles soluciones:
En esta imagen podemos apreciar la realización del circuito mediante protoboard, circuito básico similar a los vistos en clase:
Aquí un vídeo de su funcionamiento:
Además cuando entre un vehículo debe encenderse la luz del parking durante 30 segundos, para dar tiempo a que el vehículo aparque, al igual que si se pulsa el botón de encendido de la luz dentro del garaje.
A modo unicamente de ejemplo vamos a ver unas imagenes de una de las posibles soluciones:
En esta imagen podemos apreciar la realización del circuito mediante protoboard, circuito básico similar a los vistos en clase:
Aquí un vídeo de su funcionamiento:
Y un pantallazo del programa de control realizado mediante S4A:
PROGRAMACIÓN SCRATCH
Tarea 1.- “El laberinto”
1. Descripción de la tarea:
Debéis diseñar un programa que se desarrollará en un laberinto. El jugador deberá poder mover el disfraz principal (un gato, por ejemplo) que tendrá que desplazarse por el laberinto hasta lograr salir de él. En la salida se encontrará con un león. Podéis hacer uso de bocadillos para los personajes y... ¡sed creativos!
Para su desarrollo el alumno deberá de manejar el lenguaje de programación dirigido por eventos de Scratch. En primer lugar deberá diseñar el escenario y su correspondiente fondo (recordemos que debe de tratarse de un laberinto, deberá de establecer un color de fondo y dibujar con la herramienta correspondiente el recorrido del mismo). Es importante tener en cuenta que las paredes del laberinto no deben de poder ser traspasadas por los disfraces, sino que nuestro gato deberá de rebotar al chocar con alguna de las paredes del laberinto. Por otra parte, deberá de incluir los diferentes disfraces, en este caso dos (un gato y un león), que deberán de escalarse (aumentar o disminuir su tamaño) de forma que sus dimensiones sean proporcionadas a la dimensión del laberinto. A estos disfraces deberán de asignarles los programas necesarios para el correcto desarrollo del programa: movimientos, apariencia, eventos, control,...
2. Funcionamiento del programa:
Al presionar la bandera verde se iniciará el programa, visualizaremos el gato ubicado en la posición de inicio y el león en la salida del laberinto.
El jugador desplazará el gato presionando las teclas del teclado de “flechas”: hacia arriba, hacia abajo, hacia la derecha y hacia la izquierda. Una vez recorrido el laberinto y al llegar a la salida, el gato se encontrará con un león al que deberá comer, una vez comido el león desaparecerá y el gato podrá salir del laberinto.
No os olvidéis de incluir a los disfraces algún comentario que se visualice en forma de "bocadillo".
El juego finalizará una vez que el gato haya conseguido salir del laberinto.
Ejemplo de diseño de laberinto. |
Ejemplo de comentario en forma de "bocadillo".
3. Agrupamientos:
La tarea será desarrollada individualmente por cada alumno.4. Instrumento de evaluación:
La tarea será evaluada mediante una rúbrica.Tarea 2.- “El acuario”
1. Descripción de la tarea:
El alumno deberá diseñar un programa que se desarrollará en un acuario. El programa consistirá en que el jugador moviendo el disfraz principal (un pulpo) deberá comer el mayor número de peces posible.
Para su desarrollo el alumno deberá de manejar el lenguaje de programación de Scratch. En primer lugar deberá diseñar el escenario y su correspondiente fondo (recordemos que debe de tratarse de un acuario). Por otra parte, deberá de incluir los diferentes disfraces (un pulpo y tres tipos de peces). A estos disfraces deberá de asignarles los programas necesarios para el correcto desarrollo del programa: movimientos, apariencia, eventos, control,...sin olvidarnos que debemos de encontrar en pantalla un contador (indicará los puntos obtenidos) durante todo el desarrollo del programa.
2. Funcionamiento del programa:
Al iniciar el juego (presionando la bandera verde), aparecerá un submarinista que nos dará las indicaciones oportunas para dar comienzo al mismo (nos dará la bienvenida y nos indicará que para iniciar el juego debemos presionar la tecla espacio). En esta pantalla inicial ya se encontrará visible para el jugador, el contador que nos indicará cuántos puntos vamos obteniendo según el número de peces que vayamos comiendo.
Una vez que presionemos la tecla espacio aparecerá en pantalla el disfraz con el que jugará el usuario, en este caso un pulpo. Este pulpo será desplazado por el jugador presionando las teclas del teclado de “flechas”: hacia arriba, hacia abajo, hacia la derecha y hacia la izquierda.
Una vez aparezca el pulpo en pantalla comenzarán a aparecer los diferentes disfraces de peces que debemos de tratar de comer. Cada pez comido sumará un punto en nuestro contador.
Al finalizar el juego (una vez hayan desaparecido de la pantalla todos los peces) el contador nos indicará el número total de puntos obtenidos.
Ejemplo de visualización inicial del programa. |
Ejemplo visual del inicio del programa.
|
3. Agrupamientos:
La tarea será desarrollada individualmente por cada alumno.4. Instrumento de evaluación:
La tarea será evaluada mediante una rúbrica.¡¡Y ASÍ OS TIENE QUE SALIR!!
Metodología de la programación
METODOLOGÍA DE LA PROGRAMACIÓN
¿CUAL ES EL OBJETIVO DE LA PROGRAMACIÓN?
UTILIZAR LA COMPUTADORA COMO UNA HERRAMIENTA PARA LA RESOLUCIÓN DE PROBLEMAS
Fases:
- Análisis del problema (especificación)
- Diseño o desarrollo de un algoritmo
- Transformación del algoritmo en un programa
- Compilación y ejecución del programa
- Verificación y validación
- Depuración
- Mantenimiento
- Documentación
Suscribirse a:
Entradas (Atom)