Cuestionario 1 - Pregunta 6

Cuestionario 1 - Pregunta 6

de Alexis Sokorov Vargas -
Número de respuestas: 7

Buenas noches, hay algo que no me queda claro y es por qué (30 y (4) producen la misma salida:


En el (3), por ejemplo, si a < b entonces no entra al begin y se imprime 'Suerte!'

Pero en el fragmento (4) puede que a > b pero que d \neq 0 y ahí no entra al if pero pienso que no pasa por el otro if ya que no se cumple que a < b (not a>b) escribiendo 'Suerte!' 

Capaz lo estoy razonando mal a eso

En respuesta a Alexis Sokorov Vargas

Re: Cuestionario 1 - Pregunta 6

de Pablo Rovés Iglesias -
Según entiendo, lo que se desea evaluar en este ejercicio es "el resultado" no "como se ejecuta la lógica".
Es medio entreverado, pero el resultado de los 2 algoritmos es el mismo.
En respuesta a Pablo Rovés Iglesias

Re: Cuestionario 1 - Pregunta 6

de Alberto Daniel Sanchez Latronico -

hummm.......

bueno pero los resultados ? no dependen de la logica de como se ejecutan las instrucciones ?


En respuesta a Alberto Daniel Sanchez Latronico

Re: Cuestionario 1 - Pregunta 6

de Pablo Rovés Iglesias -
No necesariamente.

Por ejemplo, en el (3), si "a > b", entra al primer IF, y luego, se ejecuta el IF que esta adentro, donde se pregunta si "d = 4".
En cambio, en el (4), el IF tiene una condición compuesta (AND), es decir, se tiene que cumplir a la vez que "a > b" y "d = 4" para entrar.
Si bien la lógica se ejecuta diferente en estos casos (caso 1, un IF adentro del otro, caso 2, un IF con una condición compuesta), el resultado es el mismo (en este caso).

Te recomiendo que programes estos algoritmos en pascal y lo pruebes, eso normalmente ayuda a aclarar el tema.
En respuesta a Pablo Rovés Iglesias

Re: Cuestionario 1 - Pregunta 6

de Alberto Daniel Sanchez Latronico -
en el (3) si o si se evaluan las dos condiciones
en el (4) si no se cumple (a>b) no se evalua ( d = 4 ) >>>> cadena corta
En respuesta a Alberto Daniel Sanchez Latronico

Re: Cuestionario 1 - Pregunta 6

de Felipe Miranda Torres De La Llosa -
Hola Daniel, ¿todo bien?

En el (3) no siempre se evalúan las dos condiciones, lo que pasa es que la expresión "if d = 4" está adentro del "if a > b", por lo que si esta última no se cumple, la primera no se ejecuta, pues lo que se ejecuta es el código que está en el else.

Saludos,
Felipe
En respuesta a Alexis Sokorov Vargas

Re: Cuestionario 1 - Pregunta 6

de Felipe Miranda Torres De La Llosa -
Hola Alexis, ¿cómo andas?

El primer ejemplo que planteas es cuando a < b, y como bien decís en este caso en el código (3) se imprime "Suerte!" (y no se modifica el valor de d). Esto mismo ocurre en el código 4, pues si a < b, el primer if es falso, pero el segundo verdadero, por lo que se imprime también "Suerte!".

El segundo ejemplo que planteas es cuando a > b y d != 4, en ambos códigos se produce el mismo resultado que es no imprimir nada y no modificar el valor de la variable d.

Saludos,
Felipe