Autor Tema: Operadores lógicos JavaScript comparar NaN falla igual estricto CU01117E  (Leído 3006 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, por aquí les dejo un nuevo ejercicio.

Citar
EJERCICIO 1
Dadas las variables de tipo entero 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

Crea un script donde declares estas variables, les asignes valores y muestres por pantalla el valor de verdad que tienen cada una de las expresiones antes indicadas. ¿Coincide lo que se muestra con pantalla con lo que tú esperarías que se mostrara?

EJERCICIO 2
Crea un script donde declares dos variables a y b y fuerces a que ambas contengan valor NaN. Ahora realiza las comparaciones a == b, a === b, a !== a ¿Qué resultados obtienes? ¿A qué crees que se debe este resultado?


Están los dos ejercicios en el mismo HTML.
Código: [Seleccionar]
<html>
<head>
<title>Curso JavaScript aprenderaprogramar.com</title> <meta charset="utf-8">
<script type="text/javascript">
function mostrarMensaje1() {
var A = 5, B = 3, C = -12;
alert('La expresión A>3 es: ' + (A>3));
alert('La expresión A>C es: ' + (A>C));
alert('La expresión A<C es: ' + (A<C));
alert('La expresión B<C es: ' + (B<C));
alert('La expresión B!=C es: ' + (B!=C));
alert('La expresión A==3 es: ' + (A==3));
alert('La expresión A*B==15 es: ' + (A*B==15));
alert('La expresión A*B==-30 es: ' + (A*B==-30));
alert('La expresión C/B<A es: ' + (C/B<A));
alert('La expresión C/B==-10 es: ' + (C/B==-10));
alert('La expresión C/B==-4 es: ' + (C/B==-4));
alert('La expresión A+B+C==5 es: ' + (A+B+C==5));
alert('La expresión (A+B == 8) && (A-B == 2) es: ' + ((A+B == 8) && (A-B == 2)));
alert('La expresión (A+B == 8) || (A-B == 6) es: ' + ((A+B == 8) || (A-B == 6)));
alert('La expresión A > 3 && B > 3 && C < 3 es: ' + (A > 3 && B > 3 && C < 3));
alert('La expresión A > 3 && B >= 3 && C < -3 es: ' + (A > 3 && B >= 3 && C < -3));
}
function mostrarMensaje2() {
var a = 5/'hola'; b = 'adios'*3;
alert('El valor de a es: ' + a + ' y el valor de b es: ' + b);
alert('La expresión a==b es: ' + (a==b));
alert('La expresión a===b es: ' + (a===b));
alert('La expresión a!==a es: ' + (a!==a));
}
</script>
</head>
<body>
<div>
<h3>OPERADORES LÓGICOS PRINCIPALES EN JAVASCRIPT</h3>
<p>Ejercicio 1</p>
<img onclick="mostrarMensaje1()" src="http://i.imgur.com/MV5hGPL.png" alt="Ejercicio 1" title="Ejercicio 1 CU01117E">
<hr>
<p>Ejercicio 2</p>
<img onclick="mostrarMensaje2()" src="http://i.imgur.com/EwpKLqG.png" alt="Ejercicio 2" title="Ejercicio 2 CU01117E">
</div>
</body>
</html>

En cuanto a la pregunta del primer ejercicio, sí, es el resultado que esperaba.
a) A > 3 True  i) C / B < A True
b) A > C Truej) C / B == -10 False
c) A < C False k) C / B == -4 True 
d) B < C False  l) A + B + C == 5 False
e) B != C m) (A+B == 8 ) && (A-B == 2) True   
f) A == 3 Falsen) (A+B == 8 ) || (A-B == 6) True
g) A * B == 15 True  o) A > 3 && B > 3 && C < 3 False
h) A * B == -30 False  p) A > 3 && B >= 3 && C < -3 True

Sobre el ejercicio 2, el resultado que se obtiene es el siguiente:
a==b false, a===b false y a!=a true.

No entiendo estos últimos resultados.
Espero que puedan ayudarme.

Saludos.


« Última modificación: 26 de Septiembre 2015, 17:27 por César Krall »

GonzaH

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 30
  • SMFPersonal
    • Ver Perfil
    • SMFPersonal
Re:Operadores lógicos principales en JavaScript. Ejercicio CU01117E.
« Respuesta #1 en: 25 de Septiembre 2015, 20:08 »
Citar
Sobre el ejercicio 2, el resultado que se obtiene es el siguiente:
a==b false, a===b false y a!=a true.

Desde mi punto de vista y lógica es que NaN no es igual a nada es decir no se puede saber. Y siempre que tratemos de hacer comparaciones con valores NaN nos dara falso.

a!=a y como no se pueden saber, son distintos.


¡Saludos!

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Operadores lógicos principales en JavaScript. Ejercicio CU01117E.
« Respuesta #2 en: 25 de Septiembre 2015, 23:09 »
Gracias GonzaH.

Saludos.

 

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".