martes, 8 de noviembre de 2011

LOS OPERADORES LÓGICOS

LOS OPERADORES LÓGICOS
Los operadores lógicos son:
  • && AND (el resultado es verdadero si ambas expresiones son verdaderas)
  • || OR (el resultado es verdadero si alguna expresión es verdadera)
  • ! NOT (el resultado invierte la condición de la expresión)
AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si llueve O hace viento, iré al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes
El operador lógico AND

x
y
resultado
true
true
true
true
false
false
false
true
false
false
false
false

El operador lógico OR

x
y
resultado
true
true
true
true
false
true
false
true
true
false
false
false

El operador lógico NOT

x
resultado
true
false
false
true

Los operadores AND y OR combinan expresiones relacionales cuyo resultado viene dado por la última columna de sus tablas de verdad. Por ejemplo:
         (a<b) && (b<c)
es verdadero (true), si ambas son verdaderas. Si alguna o ambas son falsas el resultado es falso (false). En cambio, la expresión
         (a<b) ||(b<c)
es verdadera si una de las dos comparaciones lo es. Si ambas, son falsas, el resultado es falso.
La expresión " NO a es menor que b"
         !(a<b)
es falsa si (a<b) es verdadero, y es verdadera si la comparación es falsa. Por tanto, el operador NOT actuando sobre (a<b) es equivalente a
         (a>=b)
La expresión "NO a es igual a b"
         !(a==b)
es verdadera si a es distinto de b, y es falsa si a es igual a b. Esta expresión es equivalente a
         (a!=b)

LA SENTENCIA IF...ELSE

LA SENTENCIA IF...ELSE

La sentencia if...else completa la sentencia if, para realizar una acción alternativa
         if (condición)
                 sentencia1;
         else
                 sentencia2

Las dos primeras líneas indican que si la condición es verdadera se ejecuta la sentencia 1. La palabra clave else, significa que si la condición no es verdadera se ejecuta la sentencia 2, tal como se ve en la figura..
Dado que las sentencias pueden ser simples o compuestas la forma general de if...else es
         if (condición){
                 sentencia1;
                 sentencia2;
         }else{
                 sentencia3
                 sentencia4;
                 sentencia5;
         }
Existe una forma abreviada de escribir una sentencia condicional if...else como la siguiente:
         if (numeroBoleto==numeroSoreteo)
                 premio=1000;
         else
                 premio=0;
en una sola línea
         premio=(numeroBoleto==numeroSoreteo) ? 1000 : 0;
Un ejemplo significativo es el siguiente: el signo de un número elevado a una potencia par es positivo, y es negativo cuando está elevado a una potencia impar.
         int signo=(exponente%2==0)?1:-1;
La condición entre parántesis es la siguiente: un número es par, cuando el resto de la división entera de dicho número entre dos vale cero.

LA SENTENCIA IF


La sentencia if, actúa como cabría esperar. Si la condición es verdadera, la sentencia se ejecuta, de otro modo, se salta dicha sentencia, continuando la ejecución del programa con otras sentencias a continuación de ésta. La forma general de la sentencia if es:




   if (condición)
                 sentencia;
Si el resultado del test es verdadero (true) se ejecuta la sentencia que sigue a continuación de if, en caso contrario, falso (false), se salta dicha sentencia, tal como se indica en la figura. La sentencia puede consistir a su vez, en un conjunto de sentencias agrupadas en un bloque.
         if (condición){
                 sentencia1;
                 sentencia2;
         }
En el siguiente ejemplo, si el número del boleto que hemos adquirido coincide con el número aparecido en el sorteo, nos dicen que hemos obtenido un premio.
         if(numeroBoleto==numeroSorteo)
                 System.out.println("has obtenido un premio");

EJERCICIOS DE APLICACION

EJERCICIO Nº01
ENUNCIADO:

DADO 3 LONGITUDES, DIGA SI FORMA UN TRIANGULO.
TEOREMA: EN TODO TRIAMGULO, CADA LADO ES MENOR QUE LA SUMA DE LOS OTROS DOS, PERO MAYOR QUE SU DIFERENCIA.

ANALISIS:

ENTRADA:
Ø  Tres números n1, n2, n3: ENTERO
SALIDA:
Ø Formar un triangulo

PSEUDOCODIGO:

//VARIABLES
N1,N2,N3,d,e,f,g,h,i,j: ENTERO
//ENTRADA
LEER: N1, N2, N3
//PROCESO
d=N1+N2; e=N1+N3; j=N2+N3
f=N1-N2; g=N1-N3; h=N2-N3
SI (N1>f && N1<j)
//SALIDA
ESCRIBIR:TRIANGULO, NO ES
FIN

CODIFICACION

importjava.util.Scanner;
publicclassmila {

publicmila() {
// TODO Auto-generated constructor stub
}

/**
* @paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub

int N1,N2,N3,d,e,f,g,h,i,j;

Scanner teclado = newScanner(System.in);
System.out.print("PRIMER NUMERO");
N1=teclado.nextInt();
System.out.print("SEGUNDO NUMERO");
N2= teclado.nextInt();
System.out.print("TERCER NUMERO");
N3= teclado.nextInt();
d=N1+N2; e=N1+N3; j=N2+N3;
f=N1-N2; g=N1-N3; h=N2-N3;
if (N1>f && N1<j)
System.out.print("sies un triangulo");
else
System.out.print("no es");
}
}
EJERCICIO Nº02
ENUNCIADO:

DADO 3 LONGITUDES, SI FORMAN UN TRIANGULO DEVOLVER EL TIPO DE TRIANGULO SEGUN SU LADOS.
T. EQUILATERO: SUS LADOS SON IGUALES
T. ISOSCELES: 2 LADOS IGUALES.
T. ESCALENO: 3 LADOS DIFERENTES.


ANALISIS:
ENTRADA:
I1,I2,I3: ENTERO
SALIDA:
T. EQUILATERO: SUS LADOS SON IGUALES
T. ISOSCELES: 2 LADOS IGUALES.
T. ESCALENO: 3 LADOS DIFERENTES.


PSEUDOCODIGO:

//VARIABLES
I1,I2,I3: ENTERO
//ENTRADA
LEER: I1,I2,I3
//PROCESO
si(I1==I2 & I1==I3 & I3==I2 )ENTONCES
si(I1==I2)netonces
si(I1==I3)entonces
si(I2==I3) entonces
si(I1!=I2 & I1!=I3 & I2!=I3)
//SALIDA
ESCRIBIR: EQUILATERO, ISOSCELES, ESCALENO
FIN









CODIFICACION

importjava.util.Scanner;
publicclassmila {

publicmila() {
// TODO Auto-generated constructor stub
}

/**
* @paramargs
*/
publicstaticvoid main(String[] args) {
// TODO Auto-generated method stub

int I1,I2,I3;
Scanner teclado = newScanner(System.in);
System.out.print(" PRIMER LADO");
I1=teclado.nextInt();
System.out.print("PRIMER LADO");
I2=teclado.nextInt();
System.out.print("PRIMER LADO");
I3=teclado.nextInt();
if(I1==I2 & I1==I3 & I3==I2 )
System.out.print("EQUILATERO");
else
if(I1==I2)
System.out.print("ISOSELES");
else
if(I1==I3)
System.out.print("ISOSELES");
else
if(I2==I3)
System.out.print("ISOSELES");

else
if(I1!=I2 & I1!=I3 & I2!=I3)
System.out.print("ESCALENO");

}

}