Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

¿Podría alguien explicarme cual fue mi error de lógica en mi primer programa? y ¿Que fue lo que cambio en el segundo?

Primer Programa Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

En el primero, la variable contador va aumentando su valor de a 1, ya que estás diciéndole contador = contador + 1

En el segundo la variable contador aumenta de 2 en 2, por ende se imprimen los números pares.

La manera correcta en el primer caso hubiera sido contador+=2 o contador = contador + 2 , como en el segundo.

Hola. En el primer código comienzas con contador=2 y entras al bucle while , después imprimes la variable contador, que es un número, más dos, otro número. Ese es un error pues no tomas en cuenta el primer numero par que es 2 y directamente imprimes el siguiente (4) ya que a contador le estas sumando 2 y la variable contador comienza en dos. Otro error, el más importante, ocurre porque después de hacer la impresión le sumas uno a tu variable contador. Al ejecutar contador++ (que es equivalente a contador=contador+1) lo que haces es sumarle una unidad a la variable contador por lo que en la siguiente repetición del bucle valdrá 3 y entonces entras de nuevo e imprimes contador (que en este punto es igual a 3) más el número dos por eso obtienes 5 como resultado pues le estas diciendo que imprima el valor de contador +2. Después de la impresión se vuelve a ejecutar contador++ y tu variable pasa a valer 4, después imprimes la suma 4 + 2 y así sucesivamente hasta que contador valga 101. Eso hace que lo que realmente haga el bucle sea imprimir todos los números del 4 al 102 debido a la suma de una unidad que aplicas con contador++

En el segundo código no sucede lo mismo porque contador inicia también valiendo dos pero al llamar a la función imprimir solo imprime el valor de la variable sin sumarle nada y una vez impresa ahora sí le suma dos a tu variable con la línea contador=contador+2 haciendo que esta valga 4, después 6, 8, 10, 12, 14, ... ,96, 98, 100.