T5 Programacion Estructurada Processing
T5 Programacion Estructurada Processing
T5 Programacion Estructurada Processing
Lenguaje Aplicación
HTML Creación de páginas web
Java Creación de juegos y aplicaciones
JavaScript Creación de programas interactivos
C++ Creación de sistemas operativos y software
PHP Creación de páginas web con contenido dinámico
Phyton Creación de software, juegos y aplicaciones
Processing Creación de programas multimedia
Arduino, Winlogo, Robolab Robótica
SQL Creación de bases de datos
Los programas se escriben en código fuente (mediante un lenguaje de programación). Este código debe
traducirse a código binario, llamado código máquina, que es el único lenguaje que entiende el ordenador.
Este proceso de traducción se llama compilación.
COMPILADOR O
CÓDIGO FUENTE CÓDIGO MÁQUINA
INTERPRETE
Para poder escribir nuestros programas necesitamos un IDE (Entorno de Desarrollo Integrado), que es
una aplicación informática de editor de código fuente que nos permite teclear las instrucciones y
depurarlas. Algunos IDE llevan un compilador que permite compilar y ejecutar el programa.
1
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Ejemplo: Desarrollar un algoritmo que permita leer un número cualquiera N y escriba si dicho
número es par o impar
PSEUDOCÓDIGO DIAGRAMA DE FLUJO
1. Inicio
2. Declaración de variable: N INICIO
SI NO
Resto de N /2 = 0
Es par Es impar
FIN
2
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Ejemplo
Hacer un diagrama de flujo que permita leer 2 números diferentes y nos diga cuál es el
mayor de los 2 números.
DIAGRAMA DE FLUJO PSEUDOCÓDIGO
1. Inicio
INICIO 2. Definir A y B como números
enteros
3. Introducir dos números A , B:
4. Comparar los dos valores
Definir A, B como entero ▪ Condición: Si A = B
▪ Si: entonces escribir “A”
es igual a “B”
▪ Si NO:
Entrada A, B ▪ Si A > B: escribir “A
es el mayor”
▪ Si No escribir “B es
el mayor”
SI 5. Fin
A=B
NO
NO SI
A>B
FIN
Podemos realizar los pseudocódigos y diagramas de flujo a mano, con ayuda de Word u otro
procesador de texto. O utilizar software que nos ayude en la elaboración, como PSeInt que se explica
más adelante.
3
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
4
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Sintaxis de PSeInt
El programa debe empezar y acabar con los siguientes comandos::
Algoritmo y FinAlgoritmo.
Al lado de la palabra Algoritmo, podemos incluir el nombre o título que damos al
programa.
Definición de varibles: debemos utilizar el comando Definir e indicar qué tipo de dato
es la variable:
▪ Número entero
▪ Número real (puede tener decimales)
▪ Carácter (una sola letra)
▪ Texto (texto formado por varias letras)
Mostrar texto por pantalla: el comando es Escribir y debemos indicar
entre comillas el texto y sin comillas el valor de las variables que
queremos que aparezcan.
Escribir “Introduce una letra”
Escribir “El valor calculado es”, N
Comando Leer: Leer un dato introducido con el teclado y lo guarda en
la variable elegida.
Leer A (al introducir un dato, lo guarda en la variable A)
Asignar: permite asignar a una variable la instrucción u operación
deseada
S <- A+B
La operación también puede escribirse mediante fórmula S = A+ B
Estructuras de control (condicionales, bucles, …), etc
Si / SiNo: Permite evaluar
una propiedad de una
variable, y en función de
esta, realizar una acción
determinada
5
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Ejemplo: Hacer un diagrama de flujo que permita leer 3 números enteros y nos diga cuál es el
mayor de los 3 números.
PSEUDOCÓDIGO DIAGRAMA DE FLUJO
6
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
7. Instalación de Processing
Debemos descargar el programa de la web oficial: https://processing.org/download/
Al abrir el archivo que hemos descargado vemos que es un archivo comprimido. Tenemos una carpeta
con el nombre de Processing. Descomprimimos y extraemos la carpeta donde queremos que se ejecute
(por ejemplo, en el escritorio).
Y obtenemos una carpeta en la que habrá un ejecutable.
8. Entorno Processing
El IDE de Processing consiste en una ventana con un editor de texto, y lleva además un compilador y
un debugger (sistema de depuración de errores).
Processing llama a sus programas Sketch (esbozo.)
Cuando creamos un proyecto nuevo en Processing, al guardarlo se crea un Sketch, y una carpeta “Sketch
folder” con el mismo nombre y es donde estará el Sketch.
La extensión del archivo o Sketch es .pde .
En la carpeta Sketch folder se pueden añadir otras carpetas para archivos de imagen, video, etc.
7
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
9. Sintaxis de Processing
Como en todos los lenguajes de programación, cualquier error de síntaxis puede hacer que no funcione el
programa. Debemos tener mucho cuidado al escribir correctamente las instrucciones.
Las ordenes o instrucciones se separan mediante ;
Los valores de cada instrucción se colocan entre paréntesis ( )
Ejemplo: point (100,100);
Comentarios Son usados para explicar el programa, se colocan entre las líneas de código . Los
comentarios no se ejecutan con el programa, son sólo explicaciones..
Se debe iniciar el comentario con //
Ejemplo: // int v es una variable de velocidad de desplazamiento.
Para hacer comentarios que requieren más de una línea, se debe iniciar el comentario con /* y
finalizarlo con */
Ejemplo: /* Esta instrucción dibuja 20 líneas y modifica el color según con la posición en el eje
y */
Processing distingue entre mayúsculas y minúsculas, no las confundas.
Processing no tiene en cuenta los espacios en blanco, da igual ponerlos o no ponerlos.
8
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Funciones de dibujo
Instrucción Descripción
point (x,y) punto (dibuja un punto con 1px de diámetro en la
posición x,y)
line (x1,y1,x2,y2) línea (definida por las coordenadas del punto origen x1,y1
y fin x2,y2)
rect (x,y,ancho,alto,radio) rectángulo (definido por las coordenadas x,y de la
esquina superior izquierda; ancho y alto; radio es
opcional y redondea las esquinas)
Para dibujar rectángulos centrados podemos cambiar
el modo de dibujo
rectMode(CENTER);
rect(100,100,50,30);
quad (x1,y1,x2,y2,x3,y3,x4,y4) cuadrilátero (cada par de coordenadas representa en
orden de dibujo, uno de los cuatro vértices). Permite
hacer cuadrados, rombos,…
triangle (x1,y1,x2,y2,x3,y3) triángulo (cada par de coordenadas representa en orden
de dibujo, uno de los tres vértices).
ellipse (x,y,ancho,alto) elipse (definido por las coordenadas x,y del centro; ancho
y alto). Permite dibujar circunferencias
Ejemplo 1:
▪ Define el tamaño de la ventana de 400x300 px
▪ Dibuja una línea recta vertical de longitud 100 px
▪ Dibuja un triángulo rectángulo de lado 60 px
▪ Dibuja un cuadrado de lado 45 px
▪ Dibuja una circunferencia de diámetro 80 px
Color
Processing puede trabajar con el modo de color RGB utilizando cuatro variables (rojo, verde, azul y
alfa o transparencia), definidas cada una por un byte con un rango de valores que va de 0 a 255
color (255,0,0) = rojo color (0,255,0,127) = verde con 50% transparencia
Y con el modo de color hexadecimal : #FF5733, transparencia
En ambos casos si no se especifica el parámetro alfa, se entiende que su valor es máximo, 255, y
que por lo tanto no hay transparencia
Si un color tiene sus tres valores R, G y B iguales entre sí, se puede expresar con un solo
valor: color(130);
9
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
255,0,0
Valor Colores
255,127,0
color (0) Negro
255,255,0
color (255) Blanco
color (255,0,0) Rojo 0,255,0
color (0,255,0) Verde 0,0,255
color (0,0,255) Azul 75,0,130
alfa 255 Sin transparencia
alfa 0 Total transparencia 255,255,255
0,0,0
Cada figura en Processing tiene dos colores: stroke, fill (borde y relleno)
Instrucción Descripción
stroke (R,G,B,α) Color RGB del borde
α = 0 (transparente) - α = 255 (opaco)
strokeWeight (valor) Grosor del borde (en px) OJO AL ESCRIBIR
fill (R,G,B,α) Color de relleno
noStroke () Sin borde
noFill () Sin relleno
background (R,G,B,α) Color de fondo de la ventana
Para obtener cualquiera de los colores podemos utilizar abrir el menú principal
en Herramientas / Selector de colores. Y podemos copiar los datos de color
RGB o utilizar la opción “copiar”
Las propiedades de color deben escribirse antes de la función que describen
Ejemplo 2:
10
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Variables
Una variable es un espacio en memoria o cajón contenedor donde guardamos un valor. La variable
tiene un nombre fijo y un valor que puede cambiar durante el programa.
Ejemplo, una variable puede ser la distancia de un robot móvil hacia la pared. El nombre de la
variable, "dist_pared", y su valor lo expresaremos en centímetros. Si se acerca a la pared el valor
de "dist_pared" disminuye. También puedo operar con esta variable y multiplicarla o sumarla cierto
número, o la puedo comparar con otros valores, y eso me puede servir para tomar decisiones.
Las variables deben declararse antes de empezar el programa y normalmente se les asigna un
valor de inicio.
int dist_pared = 40; //declara una variable de número entero con el nombre
“dist_pared” y la inicia en valor 40 cm
println (dist_pared); //imprime en consola el valor de la distancia a la pared
Variables de sistema
Processing viene con una serie de variables internas que no tenemos que declarar. Algunas de
estas variables son:
Instrucción Descripción
width y height Ancho y alto de la ventana
Variables que reaccionan a las acciones del teclado o el ratón:
keyPressed, Presionar una tecla
keyReleased, Soltar o dejar de presionar la tecla
mousePressed, Presionar el ratón
mouseButton, Presionar el botón del ratón: LEFT, CENTER, o RIGHT
mouseReleased Soltar el ratón
Key Variable char que almacena la última tecla presionada en el teclado
11
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Operadores
Operadores matemáticos
Para operar debemos respetar la jerarquía matemática haciendo uso de los paréntesis “( )”,
+ suma / división
- resta ++ incremento de 1
* multiplicación -- decremento de 1
Operadores de comparación:
Ejemplo 3:
Variables:
▪ Definir dos variables a y b con valores enteros iniciales de 40 en ambos casos, para indicar
la posición del centro de los círculos
▪ Definir una variable decimal d con valor inicial de 12.5, para indicar el diámetro de las
circunferencias
▪ Define una variable color c con valor inicial rojo claro
Void setup:
▪ Definir una ventana azul claro de tamaño 200x200 px
Void draw:
▪ Dibujar un círculo con origen a,b; de medida d de diámetro y de color c.
▪ Dibujar otro círculo desplazado 30 px del anterior (en horizontal y vertical), de diámetro d
+10.5 y de color c +60.
▪ Dibujar otro círculo desplazado 60 px del anterior (en horizontal y vertical), de diámetro d
+40.5 y de color c +120
12
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Si no queremos que la imagen deje huella, colocaremos el color de fondo en el void draw para que
se vaya redibujando el fondo antes de dibujar las siguientes circunferencias.
Y si queremos que la forma deje huella redibujaremos rectángulos del mismo tamaño que la ventana
indicándolos color y transparencia
13
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Para evitar que la forma se salga de la pantalla podemos utilizar una estructura condicional:
if (a>width)
{ a=0; } // volvemos al principio
14
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
15
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Ejemplo 5:
Círculo que avanza dejando huella hacia la derecha (de 5 en 5) hasta tocar el final de la ventana
y luego retrocede del mismo modo
17. Bucles
for (REPETIR): Es un bucle que repite un bloque encerrado entre llaves un número de veces
mientras una condición se cumple. Utiliza una variable para contar el número de veces que se han
repetido las órdenes.
Lleva 3 comandos:
for (declara la variable contadora y la inicia; condición para que se repita el
bucle; incremento a cada paso del bucle)
for (int x = 0; x<400; x =x+5)
{ line(30,x,80,x); } // Hace líneas paralelas desde la posición 0
hasta la 400 de x
Cada vez que se va a repetir el bucle, se revisa la condición, si es cierta, el bloque de funciones
se ejecuta (en este caso, se suma), y la condición vuelve a ser comprobada de nuevo. Si la
condición es falsa, el bucle termina
while (MIENTRAS): Es un bucle que se repite infinitamente mientras la expresión de dentro del
paréntesis sea cierta.
int x= 0;
while (x < 200)
{ line(30,x,80,x);
X=x+5; } // Hace líneas paralelas desde la posición 0 hasta
la 200 de x
do…while (HACER….MIENTRAS: Trabaja de la misma manera que el bucle while, con la
excepción de que la condición se comprueba al final del bucle, por lo que este bucle se ejecuta
"siempre" al menos una vez.
Int x = 0;
do { line(30,x,80,x);
x= x+5; }
while (x < 200)
break (ROMPER): Es usado para salir de los bucles do, for, o while, pasando por alto la condición
normal del bucle.
for (i = 0; i < 10; i++)
{ Console.WriteLine("valor de i: {0}", i);
if (i > 4) {break; }
16
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Ejemplo 6:
Dibujo de 10 círculos de posición aleatoria y tamaño aleatorio entre 20 y 80 px.
Lo dibujamos en el void setup para que sólo de dibujen una vez.
Ejemplo 7:
Para incluir una variable dentro de un texto debemos indicar la variable de la siguiente manera:
“+variable+”
Int n=8;
text ("Puntuación="+n+" ", 40, 40);
17
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
Después debemos meter en la carpeta DATA de nuestro proyecto los sonidos con los que vayamos a
trabajar.
Esta Liberia permite reproducir y manipular archivos de sonido. Los formatos soportados son: WAV, AIF /
AIFF, MP3. Pero la decodificación de MP3 puede ser muy lenta y generalmente se recomienda utilizar
archivos WAV o AIF sin pérdida.
Algunos de los comandos de sonido que podemos utilizar son:
play(); Inicia la reproducción del archivo de sonido. Solo se reproduce una vez
hasta el final de la muestra de audio.
loop(); Inicia la reproducción del archivo de sonido que se repetirá en bucle
pause(); Detiene la reproducción y la siguiente reproducción se inicia donde se
detuvo la anterior reproducción.
stop(); Detiene la reproducción y la siguiente reproducción se inicia desde el
principio
18
TICO 2º Bachillerato. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz
El programa será:
Primero debemos importar la librería “processing sound” y declarar los sonidos que vamos a
utilizar
import processing.sound.*;
SoundFile cancion1; //Declaramos la canción de tipo SoundFile
En setup() cargamos un archivo de audio que previamente hemos guardado en la carpeta data.
void setup() {
cancion1 = new SoundFile(this,"01.mp3"); //Cargamos el archivo de música
canción1.loop(); //Reproducimos la canción en bucle
}
19