¿qué hace el siguiente programa? double y = 4; boolean flag=false; for (int x=3;x<10000000;x=x+2) { if (flag) { y+=((double)4/x); flag=false; } else { y-=((double)4/x); flag=true; } }
Respuestas a la pregunta
El programa en c++ realiza la siguiente acción: Para todos los impares x que se encuentran entre 3 y 10000000
- Cuando flag es False, se decrementa el valor de y en 4/x
- Cuando flag es True, se incrementa en valor de y en 4/x
1. Lo primero que hacemos es ordenar las líneas para entender mejor la estructura del programa:
float y = 4;
bool flag=false;
for (int x=3;x<10;x=x+2) {
if (flag) {
y+=((double)4/x);
flag=false;
} else {
y-=((double)4/x);
flag=true;
}
}
}
2. Luego agregamos un printf al final para conocer el resultado pero solo con una iteración (x<4):
- for (int x=3;x<4;x=x+2) {
- printf("%f \n",y);
El resultado de la ejecución ya podemos visualizarlo (imagen adjunta)
Encontramos de manera intercalada y sucesiva, la resta a la variable "y" el valor de 4/x y luego la suma a "y" del valor de 4/x.
Si devolvemos su valor original de parada para la variable "x" y volvemos a ejecutar obtenemos (segunda imagen adjunta.)