Autor Tema: Cómo evaluar si expresión devuelve true ó false Java operadores lógicos CU00634B  (Leído 1051 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
Hola he aqui el desarrollo de la actividad CU00634B del tutorial de aprendizaje de programación Java de aprenderaprogramar.com

Citar
Dadas las variables de tipo int con valores A = 5, B = 3, C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:

a) A > 3                                                            b) A > C                                               c) A < C

d) B < C                                                            e) B != C                                               f) A == 3

g) A * B == 15                                                   h) A * B == -30                                    i) C / B < A

j) C / B == -10                                                    k) C / B == -4                                       l) A + B + C == 5

m) (A+B == 8) && (A-B == 2)                              n) (A+B == 8) || (A-B == 6)

o) A > 3 && B > 3 && C < 3                                 p) A > 3 && B >= 3 && C < -3

Código: [Seleccionar]
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ejemplo01;

/**
 *
 * @author Ronnie
 */
public class Cu00634B {
       
    public static void main(String[] args) {
        int A = 5, B = 3, C = -12;
        Cu00634B cb = new Cu00634B();
       
        if (A > 3){
            System.out.println("A > 3 : Verdadero");
        }else{
            System.out.println("A > 3 : Falso");
        }
       
        if (A > C){
            System.out.println("A > C : Verdadero");
        }else{
            System.out.println("A > C : Falso");
        }
       
         if (A < C){
            System.out.println("A < C : Verdadero");
        }else{
            System.out.println("A < C : Falso");
        }
       
        if (B < C){
            System.out.println("B < C : Verdadero");
        }else{
            System.out.println("B < C : Falso");
        }
       
         if (B != C){
            System.out.println("B != C : Verdadero");
        }else{
            System.out.println("B != C : Falso");
        }
         
         if (A == 3){
            System.out.println("A == 3 : Verdadero");
        }else{
            System.out.println("A == 3 : Falso");
        }
         
          if (A * B == 15){
            System.out.println("A * B == 15 : Verdadero");
        }else{
            System.out.println("A * B == 15 : Falso");
        }
         
          if (A * B == 30){
            System.out.println("A * B == 30 : Verdadero");
        }else{
            System.out.println("A * B == 30 : Falso");
        }
         
           if ((C/B)<A){
            System.out.println("(C/B)<A : Verdadero");
        }else{
            System.out.println("(C/B)<A : Falso");
        }
           
            if ((C/B)==10){
            System.out.println("(C/B)==10 : Verdadero");
        }else{
            System.out.println("(C/B)==10 : Falso");
        }
           
             if ((C/B)== - 4){
            System.out.println("(C/B)== - 4 : Verdadero");
        }else{
            System.out.println("(C/B)== - 4 : Falso");
        }
             
              if (A+B+C == 5){
            System.out.println("A+B+C == 5 : Verdadero");
        }else{
            System.out.println("A+B+C == 5 : Falso");
        }
             
               if (((A+B)== 8) && ((A-B)== 2) ){
            System.out.println("((A+B)== 8) && ((A-B)== 2) : Verdadero");
        }else{
            System.out.println("((A+B)== 8) && ((A-B)== 2) : Falso");
        }
               
          if (((A+B)== 8) || ((A-B)== 6)){
            System.out.println("((A+B)== 8) || ((A-B)== 6) : Verdadero");
        }else{
            System.out.println("((A+B)== 8) || ((A-B)== 6) : Falso");
        }
         
           if (A>3 && B>3 && C<3 && C< -3 ){
            System.out.println("A>3 && B>3 && C<3 && C< -3 : Verdadero");
        }else{
            System.out.println("A>3 && B>3 && C<3 && C< -3 : Falso");
        }
           
            if (A>3 && B>=3 && C<-3){
            System.out.println("A>3 && B>=3 && C<-3 : Verdadero");
        }else{
            System.out.println("A>3 && B>=3 && C<-3 : Falso");
        }
       
         
    }
}

« Última modificación: 04 de Junio 2020, 17:59 por Alex Rodríguez »
Ronald Mosquera Mancilla

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 594
    • Ver Perfil
Re:Respuesta CU00634B
« Respuesta #1 en: 26 de Agosto 2018, 00:52 »
Hola Ronald,
para este ejercicio no se pedía escribir ningún código. Lo que se pide es comprobar si tú eres capaz de discernir cuál será el resultado de evaluar esas expresiones.
Es decir, tú has de evaluar mentalmente cada expresión y decidir si el resultado es verdadero o falso.

Aún así, tampoco está mal haber escrito ese código, pues te sirve para comprobar si tu analisis mental de cada expresión ha sido correcto o no.

Pero lo importante es que el programador sepa evaluar esas expresiones mentalmente.
Cuando se escriben programas, el programador ha de decidir cuáles son las condiciones a evaluar en cada caso, y por donde seguirá la ejecución del código según el resultado de hacer dichas evaluaciones.
Así que por tanto, el programador ha de ser capaz de entender los operadores lógicos que evaluan estas expresiones para poder sacarles provecho.

Así que intenta hacerlo tú mentalmente y no dudes en preguntar cuando encuentres alguna que no sepas como evaluar.

En realidad, es bastante fácil, pues solo hay que aplicar la lógica (por eso se le llaman operadores lógicos)

Por ejemplo, si c = 3

Y evaluo esta expresión con un AND --> (c == 3 ) && (c ==5)

Estoy diciendo que "c es igual a 3" y que "c es igual a 5".
Estoy diciendo que las dos posibles condiciones, se están cumpliendo.
Obviamente, eso es falso. El valor de c es 3, eso es cierto, pero no es 5. Y ahí estoy diciendo que c es 3 y que también es 5, lo cuál es mentira.

De hecho, esta expresión que hemos evaluado, da igual cuál sea el valor real de c. Esta expresión SIEMPRE será falso.
Porque una variable nunca tendrá dos valores distintos al mismo tiempo (quizás sí en computación quántica pero eso ya lo veremos el siglo que viene je je)
Una variable solo tendrá un posible y único valor. ASí que cualquier expresión que diga que esa variable tiene dos valores distintos al mismo tiempo, siempre será FALSE.

Lógico, ¿no?

En cambio, si ahora evaluamos con un OR en lugar de un AND
Con OR --> (c == 3 ) || (c ==5)

Ahí estoy diciendo que "c es igual a 3" o que "c es igual a 5".
Estoy diciendo que al menos una de esas dos condiciones, se está cumpliendo. La otra condición puede que se cumpla también, o no...

Esta expresión es verdadera, porque es cierto que al menos una de esas condiciones se está cumpliendo, pues hemos dicho que c tiene valor 3, así que esta condición se cumple.

Estos ejemplos son fáciles de entender y en realidad rara vez necesitaremos utilizar condiciones que sean mucho más complejas.
Pero es importante ser capaces de evaluar mentalmente cualquier posible condición, ya que a veces si nos vendrá bien usar condiciones complejas y/o ingeniosas que nos pueden ayudar a simplificar el resto del código.

Un saludo
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".