Informática, pregunta formulada por gonzalezld3392, hace 1 año

¿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

Contestado por irmajulia
1

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

Adjuntos:
Otras preguntas