Autor Tema: Ejercicio CU01117E "Operadores lógicos JavaScript"  (Leído 3348 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Ejercicio CU01117E "Operadores lógicos JavaScript"
« en: 06 de Mayo 2018, 02:44 »
Buenas tardes.

Vengo a presentar la solucion de los siguientes ejercicios JavaScript de la entrega CU01117E del tutorial gratuito de programación web de aprenderaprogramar. En este capítulo se presentan 2. El primero nos pide lo siguiente:

Citar
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?

Aquí va mi script

Código: [Seleccionar]
<script>
var A=5,B=3,C=-12;
alert(A>3);
alert(A>C);
alert(A<C);
alert(B<C);
alert(B!=C);
alert(A==3);
alert(A*B==15);
alert(A*B==-30);
alert(C/B<A);
alert(C/B==-10);
alert(C/B==-4);
alert(A+B+C==5);
alert((A+B == 8 )&&(A-B==2));
alert((A+B == 8 )||(A-B==6));
alert(A>3&&B>3&&C<3);
alert(A>3&&B>=3&&C<-3);
</script>

Ok... vamos a responder cada comparación:
a)Nos arrojaría un true, ya que 5 es mayor que 3.

b)Nos arrojaría un true, ya que 5 es mayor que -12.

c)Nos arrojaría un false, ya que -12 no es mayor que 5.

d)Nos arrojaría un false, ya que -12 no es mayor que 3.

e)Nos arrojaría un true, ya que 5 es distinto de 3.

f)Nos arrojaria un false, ya que 5 no es igual a 3.

g)Nos arrojaría un true, ya que la multiplicación de 5 por 3 nos daría 15.

h)Nos arrojaría un false, ya que la multiplicación de 5 por 3 no es -30.

i)Nos arrojaría un true, ya que el resultado de dividir -12 y 3 es un resultado negativo (-4), por lo tanto es menor que 5.

j)Nos arrojaría un false, ya que -4 no es igual a -10.

k)Nos arrojaría un true, ya que -4 si es igual a -4.

l)Nos arrojaría un false, ya que la suma de 5+3+(-12) viene siendo -4, por lo tanto no es igual a 5.

m)Nos arrojaría un true, ya que ambas expresiones son true. (5+3 = 8 y 5-3 = 2)

n)Nos arrojaría un true, ya que la primera expresión es cierta. (5+3 = 8 )

o)Nos arrojaría un false, ya que la segunda expresión, 3 es mayor que 3 no es cierta.

p)Nos arrojaría un true, ya que las 3 expresiones si se cumplen (o son true); 5 es mayor que 3, 3 es mayor o igual a 3 y -12 es menor que -3.

Comprobé los resultados ejecutando el script en mi navegador, y al parecer, todos se han cumplido como lo había pensado. Ahora vamos con el ejercicio dos que dice asi:

Citar
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?

Bien, aqui les presento el script:
Código: [Seleccionar]
<script type="text/javascript">
var A=5*Math.random,B=3*"garbanzo";
alert(A == B);
alert(A === B);
alert(A !== A);
</script>

Las dos primeras comparaciones me devuelven como resultado false, pero la ultima... es true.

Ok, la verdad que esto que preguntan es algo totalmente nuevo para mi.

En lecciones anteriores, se comento que JavaScript asigna automáticamente NaN cuando se intenta realizar una operación con un valor que no es un número. Primero por los resultados que arrojaba, pense que se trataba de un valor tipo objeto. Pero decidi investigar: Nos encontramos ante un valor primitivo númerico de JavaScript... sep, un vulgar número del montón. Lo que mas curiosidad me causa, es que el valor NaN esta hecho para ser distinto de cualquier valor, incluso hasta si misma. También descubri que el valor NaN es una propiedad de un objeto global. La verdad que esta ultima parte no la entendi muy bien, Es de una clase en especifico? o pertenece a varias?.

Respondiendo a las preguntas:
A) Las primeras comparaciones siempre devuelven false, ya que los valores NaN nunca van a poder igualarse a otras. 
B) La ultima comparación devuelve true, porque siempre un valor NaN sera distinto de todo.

Salu2!
« Última modificación: 01 de Julio 2018, 17:14 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicio CU01117E "Operadores lógicos JavaScript"
« Respuesta #1 en: 01 de Julio 2018, 17:15 »
Hola, todo correcto. Lo más adecuado para el ejercicio 1 es primero escribir la respuesta sólo reflexionando (sin ejecutar ningún código) y luego si se quiere comprobar con código, como has hecho, así que comprobado está.

Respecto a NaN copio un fragmento de la entrega CU01112E: Para JavaScript NaN (abreviatura de “Not-a-Number”) es un valor numérico especial, que representa “número ilegal o no representable”.

Sobre que sea una propiedad de un objeto global, creo que es mejor avanzar en el curso antes de hablar sobre esto, porque a medida que se avanza se irá entendiendo mejor todo esto.

Ciertamente es curioso que NaN comparado con sí mismo arroje "distinto", porque parece contradictorio. Una faceta más del lenguaje que conviene conocer...

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