Académique Documents
Professionnel Documents
Culture Documents
Evaluacin
3>5
false
3<5
true
5<3
false
5>3
true
Operadores relacionales
Los operadores relacionales que encontramos disponibles para trabajar en Processing son:
Operador
Significado
>
Mayor que
<
Menor que
>=
Mayor o equivalente a
<=
Menor o equivalente a
==
Equivalente a
!=
No equivalente a
Estructura condicional: if
Hasta ahora hemos visto que las instrucciones se ejecutan de forma lineal, es decir desde la primera
hasta la ltima lnea de cdigo, una tras otra. Este tipo de construccin genera un resultado que no
contempla variaciones en lo estructural, sino que presenta una sola forma de resolucin.
Pero, qu ocurrira si deseamos generar una construccin que contemple dos, tres o ms
variaciones estructurales? Algunos ejemplos: qu hubiese ocurrido si Claudio no verta el veneno
en el odo de su hermano? Cul hubiera sido la temtica de los escritos de Barthes, si las heridas
causadas por el accidente vial no lo hubiera llevado un mes ms tarde a la muerte?
A continuacin veremos la primer estructura condicional, if:
if(condicin){
acciones
}
Esto significa que cuando el programa se encuentre con esta estructura (o bloque) se ejecutarn las
acciones comprendidas entre los signos { y }, siempre y cuando la evaluacin de la condicin
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
22
resulte verdadera. La condicin puede estar comprendida por una expresin relacional (o varias
vinculadas mediante conectores lgicos, que veremos ms adelante.
Veamos un ejemplo:
booleandibujoCirculo=true;//asignoverdaderoalabooleanadibujoCirculo
if(dibujoCirculo==true){//sidibujoCirculoequivaleaverdadero,
ellipse(50,50,50,50);//entoncesdibujounaelipse.
}
rect(30,45,40,10);//dibujorectngulo
Esto significa que cuando el programa se encuentre con esta estructura se ejecutarn las acciones
1 siempre y cuando la evaluacin de la condicin resulte verdadera; por otra parte, si dicha
evaluacin resultase falsa, se ejecutarn las acciones2.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
23
Veamos un ejemplo:
booleandibujoCirculo=true;//asignoverdaderoalabooleanadibujoCirculo
if(dibujoCirculo==true){//sidibujoCirculoequivaleaverdadero,
ellipse(50,50,50,50);//entoncesdibujounaelipse;
}else{//encasocontrario,
line(25,25,75,75);//dibujodoslneas.
line(75,25,25,75);
}
rect(30,45,40,10);//dibujorectngulo
Cuando el programa se encuentre con esta estructura se ejecutarn las acciones 1 siempre y
cuando la evaluacin de la condicin 1 resulte verdadera; por otra parte, si dicha evaluacin
resultase falsa, se evaluar una segunda condicin, condicin2, y en caso de resultar verdadera,
se ejecutarn las acciones2.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
24
Cuando el programa se encuentre con una estructura switch, se ejecutarn las instrucciones
correspondientes al case cuya etiqueta equivalga al valor de la expresin. Por otro lado, todas
las dems instrucciones que le sigan sern ejecutadas a menos que se les interrponga un break.
Y por ltimo, los tipos de datos bsicos que pueden ser usados tanto en la expresin como en las
etiquetas son byte, char o int.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
25
Veamos tres ejemplos:
intnum=1;//asigno1alenteronum.
switch(num){//conmutoalcasocuyovalorequivalgaaldenum
case0://estecasocontieneunaetiquetaquenoequivaleanum
println("Cero");//estainstruccinnoseejecutaryaquelaetiq.es0
break;
case1://estecasocontieneunaetiquetaquesequivaleanum
println("Uno");//imprime"Uno"enlaconsola
break;//saledelaestructuraswitch
}
println("Listo!");//imprime"Listo!"enlaconsola
charletra='N';//asignoNalcaracterletra
switch(letra){//conmutoalcasocuyovalorequivalgaaldeletra
case'A'://estecasonoequivalealetra
println("Alfa");//estainstruccinnoseejecutar
break;
case'B'://estecasotampocoequivalealetra
println("Bravo");
break;
default://yaquenoseencontrningncaso,seejecutaeste
println("Ninguna");//imprime"Ninguna"enlaconsola
break;//saledelaestructuraswitch
}
println("Listo!");//imprime"Listo!"enlaconsola
//Laremocindeun"break"permitelaevaluacindemsdeunvaloralavez
charletra='B';//asignoBalcaracterletra
switch(letra){//conmutoalcasocuyovalorequivalgaaldeletra
case'a'://estecasonoequivalealetra
case'A'://tampocoeste
println("Alfa");
break;
case'b'://tampocoeste
case'B'://peroestecasoscontieneunaetiquetaequivalente
println("Bravo");//imprime"Bravo"enlaconsola
break;
}
println("Listo!");//imprime"Listo!"enlaconsola
Operadores lgicos
En lgica proposicional se utilizan conectivas lgicas, tambin llamadas operadores lgicos. En
programacin se los utilizan para combinar valores de verdad y obtener nuevos valores que
determinen el flujo de control de un algoritmo o programa.
Los operadores lgicos presentes en Processing se usan para considerar ms de una condicin de
forma simultnea al combinar dos o ms expresiones relacionales. Tambin se los utiliza para
invertir los valores lgicos.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
26
Operador
Significado
&&
||
El carcter utilizado para representar el operador OR se llama pleca. Para tipearlo debemos pulsar la
tecla que contiene alguno de los siguientes caracteres (que en general se encuentra a la izquierda de
la tecla 1):
Tablas de verdad
Repasemos entonces las tablas de verdad de dichos operadores:
Expresin
a&&b
Evaluaciones parciales
Evaluacin general
true&&true
true
true&&false
false
false&&true
false
false&&false
false
En relacin al operador lgico AND, note que para que la evaluacin general sea verdadera,
necesita que todas las evaluaciones parciales de las expresiones relacionales componentes sean
verdaderas.
Expresin
a||b
Evaluaciones parciales
Evaluacin general
true||true
true
true||false
true
false||true
true
false||false
false
Ahora, hablando del operador lgico OR, la evaluacin general ser verdadera tan slo si alguna de
las evaluaciones parciales resultase verdadera.
Expresin
!a
Evaluaciones parciales
Evaluacin general
!true
false
!false
true
Por ltimo, la utilizacin del operador NOT, invierte el valor de verdad, si es verdadero cambia a
falso y viceversa.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
27
Veamos tres ejemplos:
inta=10;
intb=20;
//Laexpresin"a>5"debeserverdaderay"b<30"tambindebeserlo.
//Debidoaqueambassonverdaderas,seejecutarelcdigodelbloque.
if((a>5)&&(b<30)){
line(20,50,80,50);
}
//Laexpresin"a>15"esfalsa,pero"b<30"esverdadera.
//DebidoaqueeloperadorANDrequierequeambassean
//verdaderas,noseejecutarelcdigodelbloque.
if((a>15)&&(b<30)){
ellipse(50,50,36,36);
}
inta=10;
intb=20;
//Cualquieradelasdosexpresionespuedenserverdaderas.
//Debidoaqueambassonverdaderas,seejecutarelcdigodelbloque.
if((a>5)||(b<30)){
line(20,50,80,50);
}
//Laexpresin"a>15"esfalsa,pero"b<30"esverdadera.
//DebidoaqueeloperadorORrequieresloqueunaparteseaverdadera
//entodalaexpresin,seejecutarelcdigodelbloque.
if((a>15)||(b<30)){
ellipse(50,50,36,36);
}
booleanb=true; //Asignatrueab
println(b);
//Imprime"true"
println(!b);
//Imprime"false"
b=!b;
//Asignafalseab
println(b);
//Imprime"false"
println(!b);
//Imprime"true"
println(5>3); //Imprime"true"
println(!(5>3));//Imprime"false"
intx=5;
//Declarayasigna5ax
println(!x);
//ERROR!Sloesposibletrabajarconvariablesbooleanas
IntroduccinaProcessingv1.5+
Docente:RalLacabanne
28
Lectura recomendada
Ejercicio 05
Realizar un boceto donde se declare una variable booleana que en funcin del valor dibuje:
si la evaluacin resulta true: un crculo con relleno negro.
en cambio, si la evaluacin resulta false: un crculo con relleno blanco.
Comentar todas las instrucciones.
Ejercicio 06
Realizar un boceto donde se dibuje una lnea horizontal a mitad de pantalla, y que adems
se declare una variable booleana que en funcin del valor dibuje:
si la evaluacin resulta true: un crculo con relleno negro.
en cambio, si la evaluacin resulta false: un crculo con relleno blanco.
Comentar todas las instrucciones.
Ejercicio 07
Realizar un boceto donde se declare una variable que en funcin del valor dibuje alguna de
las siguientes opciones:
un crculo sin relleno.
un crculo con relleno blanco.
un crculo con relleno negro.
Para la evaluacin se deber utilizar una estructura switch.
Comentar todas las instrucciones.
IntroduccinaProcessingv1.5+
Docente:RalLacabanne