Las operaciones aritméticas y las estructuras de control funcionan en conjunto para dotar a los programas con posibilidades de elección y procesamiento muchos más complejos y configurables. De esta manera, los desarrollos expanden sus funcionalidades, pudiendo realizar prácticamente cualquier tipo de elección y operación. Es fundamental aprender a utilizar estos elementos para el correcto aprendizaje del lenguaje Processing.
Como se ha visto en ejemplos anteriores, muchas veces es necesario realizar operaciones matemáticas dentro de los programas, ya sea para representar determinados datos mediante su procesamiento, o para resolver algún tipo de condición.
Las opciones de suma, resta, multiplicación, división, módulo, sumar uno, restar uno y restricción de valores están disponibles en Processing de la misma forma que en casi cualquier lenguaje de programación.
Para comenzar a trabajar con estos operadores, hay que tener noción de la precedencia de los operadores, y el agrupamiento
de los mismos. Esto, básicamente, tiene que ver con que, si tenemos varias operaciones en una misma línea
de código, se debe tener en cuanta cuál resolverá Processing primero, cuál después, y así hasta el final. Processing
realizará primero las operaciones de división (/), multiplicación (*) y módulo (%), luego la suma (+) y resta (-), dejando
para el final la operación igual (=), y los atajos de cada operación (*= , /=, %=, +=, -=).
Dentro de las funciones aritméticas que maneja Processing existen algunas muy útiles que servirán para realizar restricciones
de valores, funciones que a veces ahorran varias líneas de código. Las funciones ceil(), floor(), round(), min()
y max() son utilizadas para realizar estas restricciones numéricas.
Estas funciones devuelven un valor después de realizar una operación. Este valor puede ser asignado a una variable y
así generar la restricción del valor. A continuación, presentamos una reseña de cómo utilizar estas funciones:
En general, estas funciones son muy útiles si se deben asignar extremos o tomar decisiones de límites en los programas.
Una serie de ejemplos complementarios muestran cómo utilizar
estas funciones en Processing:
CAP2EjemploComplementario9.pde
CAP2EjemploComplementario9.pde
CAP2EjemploComplementario9.pde
CAP2EjemploComplementario9.pde
Como en todo lenguaje de programación, Processing cuenta con las estructuras básicas de control de flujo de datos
de un programa. Es interesante pensar en la potencia que esto le da a Processing cuando estamos hablando de un
programa que básicamente dibuja e interactúa con el usuario.
Condicional if
Este es uno de los condicionales más conocidos. Mediante una condición determinada, if realiza o no una determinada
acción preestablecida. La sintaxis es la siguiente:
if(condición)
{
acción;
}
Por supuesto, dentro de if puede revisar cualquier condición lógica que contenga los operandos lógicos correspondientes:
Lectura Obligatoria
Las operaciones lógicas son herramientas sumamente utilizadas
dentro de los lenguajes de programación. De hecho, existe toda
una rama de la matemática que se encarga de este tipo de operaciones,
la cual se denomina lógica. Conocer características de este
tipo de matemática, permite mejorar el nivel de programación,
por lo tanto, revisar estas operaciones es, sin duda, una herramienta
sumamente útil. A continuación, se propone la lectura de un
anexo que revisa los rudimentos básicos de estas operatorias.
Lectura Obligatoria
Lipschutz, S. (1992), “Lógica, Tablas de Verdad” en: Matemáticas
para computación, McGraw Hill, México, 76-94.
Condicional switch-case
También existe otro condicional llamado switch() el cual actúa en conjunto con case. La estructura de usa switch(), es
la siguiente:
int num;
switch(num) {
case 0:
acción;
break;
case 1:
acción;
break;
}
Así, con todos los casos que se desean utilizar. Esta estructura sirve para generar múltiples acciones supeditadas a las
variaciones de una sola variable.
Para realizar acciones repetitivas, se utilizan las estructuras de repetición for() y while().
La sintaxis para for() es la siguiente:
for (variable_inicial; condición; valor_para_terminar_loop)
{
acción;
}
//Mediante el siguiente loop se dibujan 20 líneas diagonales
for (int i = 20; i < width; i += 1)
{
line(20, i, width, i+15);
}
Para el caso de while, la sintaxis es la siguiente:
while (condición)
{
acción;
}
Mientras for() repite la iteración una cantidad de veces, while() repetirá la acción mientras se cumple una condición dada.
Se pueden visualizar diferentes formas de trabajar con condicionales
y estructuras de repetición y observar la potencia que
estas funciones pueden dar a Processing mediante los siguientes
ejemplos complementarios:
CAP2EjemploComplementario13.pde
CAP2EjemploComplementario14.pde
CAP2EjemploComplementario15.pde
CAP2EjemploComplementario16.pde
CAP2EjemploComplementario17.pde
CAP2EjemploComplementario18.pde
Actividad 8
Tomar uno de los ejemplos complementarios y adaptarlo para generar un programa nuevo.