Cuestionario 2

Cuestionario 2

de Paula Gallo Jaureguy -
Número de respuestas: 4

Buenas.

Estuve realizando el cuestionario y me surgió una duda en el ejercicio que adjunto.

Opté por utilizar un for aunque estuviese mal escrito (no sé si fue accidental o intencionalmente). Entiendo que utilizando la estructura del while e incrementando el i dentro, sucede que cuando el vector es totalmente positivo, se accede a una posición de más, quedando así fuera del vector, por lo que estaría mal.

Me gustaría aclarar la duda de la definición del for, porque si fue intencional, quisiera que me explicaran cómo resolver el ejercicio utilizando while.

Muchas gracias.
Saludos,

Paula


En respuesta a Paula Gallo Jaureguy

Re: Cuestionario 2

de Cecilia Denis Di Leone -
Hola! Yo tengo dudas con el mismo ejercicio. Entiendo lo de la estructura, y que se detenga apenas halle el primer valor negativo, lo pensé mucho. Pero en su respuesta correcta (con el while) con el arreglo [0, 1] el resultado tiene_negativo es 1, ya que se detiene por la condición v<0 (no <=0) y define 1 por i<=lentgh(v). Por tanto me decidí por el otro código.
Por tanto la solución con for e if daría el resultado esperado por más que la estructura no sea la adecuada ya que siempre chequea todo el vector. Agradezco respuesta
En respuesta a Cecilia Denis Di Leone

Re: Cuestionario 2

de Alejandro Blanco -
Cecilia.

Es correcto, con un entero 0 en el vector la solución del while presenta problemas. Hay que ajustar la letra o la solución cambiando la condición (v(i)>0) por (v(i)>=0) del while.

Saludos

Alejandro B
En respuesta a Paula Gallo Jaureguy

Re: Cuestionario 2

de Alejandro Blanco -
Paula.

El for no es la instrucción de iteración adecuada ya que recorre todo el vector en lugar de detenerse al encontrar el primer entero negativo. La sintaxis del for además tiene un error, pero fue involuntario. Vamos a corregirlo.

Con la opción del while no se accede a una posición de más, debido a que el operador and utilizado ('&&' ) es por circuito corto. Esto quiere decir que si la primer expresión lógica es falsa (i se hace mayor que lenght(v)) no se evalúa la segunda expresión.

Saludos

Alejandro B