Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 25 de Septiembre 2015, 12:14

Título: Operadores lógicos JavaScript comparar NaN falla igual estricto CU01117E
Publicado por: pedro,, en 25 de Septiembre 2015, 12:14
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.


Título: Re:Operadores lógicos principales en JavaScript. Ejercicio CU01117E.
Publicado por: GonzaH 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!
Título: Re:Operadores lógicos principales en JavaScript. Ejercicio CU01117E.
Publicado por: pedro,, en 25 de Septiembre 2015, 23:09
Gracias GonzaH.

Saludos.