viernes, 10 de junio de 2011

Deitel_Java_5.23 (Leyes de De Morgan en Java)

5.23 (Leyes de De Morgan) En este capítulo, hemos hablado sobre los operadores lógicos && , &, ||, |, ^ y !. Algunas veces, las leyes de De Morgan pueden hacer que sea más conveniente para nosotros expresar una expresión lógica. Estas leyes establecen que la expresión !(condición1 && condición2) es lógicamente equivalente a la expresión (!condición1 || !condición2). También establecen que la expresión !(condición1 || condición2) es lógicamente equivalente a la expresión (!condición1 && !condición2). Use las leyes de De Morgan para escribir expresiones equivalentes para cada una de las expresiones siguientes, luego escriba una aplicación que demuestre que, tanto la expresión original como la nueva expresión, producen en cada caso el mismo valor:

a) !(x < 5) && !(y >= 7)
b) !(a == b) || !(g != 5)
c) !( (x <= 8) && (y > 4))
d) !( (i > 4) || ( j <= 6 ) )

El siguiente código debe guardarse como UsaDeitel_5_23.java
 
 public class UsaDeitel_5_23

 {       // Abre UsaDeitel_5_23
 
 public static void main(String args[])
 {   // Abre main

 //Se define el metodo Deitel_5_23
 
 Deitel_5_23 miObjeto = new Deitel_5_23();

 /*
 // Se llama al metodo caso a 
 miObjeto.Casoa();
 */

 // Se llama al metodo caso b 
 miObjeto.Casob();

 /*
 // Se llama al metodo caso c 
 miObjeto.Casoc();

 // Se llama al metodo caso d 
 miObjeto.Casod();
 */
 }   // Cierra main

 }       // Cierra UsaDeitel_5_23
    


El siguiente código debe guardarse como Deitel_5_23.java

 import java.util.Scanner;


 public class Deitel_5_23

 {    // Abre clase Deitel_5_23
 
  Scanner entrada = new Scanner(System.in);
  private int incognita;

 // Abre metodo caso a
 public void Casoa()
 {  // Abre metodo caso a
  int x = 0;
  int y = 0;

  
  System.out.print("\nEste programa corrobora con un ejemplo ");
  System.out.print("las leyes de De Morgan.\n");

  System.out.println("\nSegun las leyes de De Morgan, ");
  System.out.print("\n!(x < 5) && !(y >= 7) es equivalente a ");
  System.out.print("!((x < 5) || !(y >= 7)) ");
 

  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = ( !(x < 5) && !(y >= 7 ))? 1: 0; ");

  System.out.println("\nPor favor introduzca un valor de x: ");
  x = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de y: ");
  y = entrada.nextInt();

  incognita = ( !(x < 5) && !(y >= 7 ))? 1: 0; 

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);

  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = !( (x < 5) || (y >= 7 ))? 1: 0; ");
  System.out.println("\nPor favor introduzca un valor de x: ");
  x = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de y: ");
  y = entrada.nextInt();

  incognita = !( (x < 5) || (y >= 7 ))? 1: 0; 

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);
 }  // Cierra metodo caso a
    

 // Abre metodo caso b
 public void Casob()
 {  // Abre metodo caso b
  int a;
  int b;
  int g;

  System.out.println("\nSegun las leyes de De Morgan, ");
  System.out.println("\n!(a == b) || !(g != 5) es equivalente a ");
  System.out.println("\n!((a == b) && (g != 5)) ");
 
  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = (!(a == b) || !(g != 5))? 1:0; ");

  System.out.println("\nPor favor introduzca un valor de a: ");
  a = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de b: ");
  b = entrada.nextInt();

  System.out.println("\nPor favor introduzca un valor de g: ");
  g = entrada.nextInt();

  incognita = (!(a == b) || !(g != 5))? 1:0; 

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);

  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita =  !((a == b) && (g != 5))? 1: 0;");

  System.out.println("\nPor favor introduzca un valor de a: ");
  a = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de b: ");
  b = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de g: ");
  g = entrada.nextInt();
    
  incognita =  !((a == b) && (g != 5))?1:0;
   
  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);
 }  // Cierra metodo caso b


 // Abre metodo caso c
 public void Casoc()
 {  // Abre metodo caso c

  int x = 0;
  int y = 0;

  System.out.println("\nSegun las leyes de De Morgan, ");
  System.out.println("\n!((x <= 8) && (y > 4)) es equivalente a ");
  System.out.println("\n(!(x <= 8) || !(y > 4)) ");
 
  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = !((x <= 8) && (y > 4))? 1: 0;  ");

  System.out.println("\nPor favor introduzca un valor de x: ");
  x = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de y: ");
  y = entrada.nextInt();

  incognita = !((x <= 8) && (y > 4))? 1: 0;  

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);

  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = (!(x < 5) || !(y >= 7))? 1: 0;"); 

  System.out.println("\nPor favor introduzca un valor de x: ");
  x = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de y: ");
  y = entrada.nextInt();
  
  incognita = (!(x < 5) || !(y >= 7))? 1: 0; 

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);
 }  // Cierra metodo caso c

 // Abre metodo caso d
 public void Casod()
 {  // Abre metodo caso d

  int i;
  int j;

  System.out.println("\nSegun las leyes de De Morgan, ");
  System.out.println("\n!((i > 4) || (j <= 6)) es equivalente a ");
  System.out.println("\n(!(i > 4) && !(j <= 6)) ");
 
  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = !((i > 4) || (j <= 6))? 1:0;");

  System.out.println("\nPor favor introduzca un valor de i: ");
  i = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de j: ");
  j = entrada.nextInt();

  incognita = !((i > 4) || (j <= 6))? 1:0;

  System.out.printf("\nEl valor de incongnita es: %d\n", incognita);

  System.out.print("\n La variable incognita toma los valores 0 o 1 ");
  System.out.print("de la siguiente manera: \n");
  System.out.println("\n incognita = !(i > 4) && !( j <= 6 )"); 

  System.out.println("\nPor favor introduzca un valor de i: ");
  i = entrada.nextInt();
  
  System.out.println("\nPor favor introduzca un valor de j: ");
  j = entrada.nextInt();

  incognita = !(i > 4) && !( j <= 6 )? 1:0; 

  System.out.printf("\nEl valor de incognita es: %d\n", incognita);
 }  // Cierra metodo caso d

 }    // Cierra clase Deitel_5_23

1 comentario:

  1. La ley de morgan tiene amplio uso en la logica de circuitos. No solo en la demostración y parte teorica sino en el comportamiento aplicado de componentes programados.


    Comparto un link con el programa desarrollado en Java:
    https://tutorias.co/arrays-javademostrar-la-ley-de-morgan/

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...