• Sábado 9 de Noviembre de 2024, 03:30

Autor Tema:  Dos while juntos  (Leído 1761 veces)

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Dos while juntos
« en: Lunes 6 de Julio de 2009, 13:48 »
0
En el código anterior de dibujar un cuadrado con asteriscos, no se volvía al primer for hasta que j era mayor que columnas y se se hacían todos sus ciclos. Por qué en estos 2 while se vuelve al primer while si no se han cumplido los 10 ciclos de while (column <= 10)? A cada ciclo, sale de ese while, hace n y vuelve a entrar al primero, por qué no lo hace 10 veces seguidas y cuando 11<=10 y da falso sale de ahí, hace n y vuelve al primer while?

Y también quería preguntar, qué hace if (row % 2)? Al principio del todo row = 10, por lo tanto 10 % 2 = 0, entonces cómo es la condición? Si row % 2, qué más? Gracias.

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. main()
  6. {
  7.      
  8.       int row = 10, column;
  9.      
  10.       while (row >=1) {
  11.             column =1;
  12.            
  13.             while (column <= 10){
  14.             if(row % 2)
  15.             printf("<");
  16.             else
  17.             printf(">");
  18.            
  19.            ++column;
  20.             }
  21.            
  22.             --row;
  23.             printf("n");
  24.             }
  25.            
  26.             system ("PAUSE");
  27.             return 0;
  28.             }
  29.  
  30.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Dos while juntos
« Respuesta #1 en: Lunes 6 de Julio de 2009, 14:59 »
0
En este caso tampoco se vuelve hasta que se escribe toda la columna, sino imprimiria el n de fin de linea, la condicion es si el modulo de 2 de row es verdadero (o sea es mayor a 0), es decir los pares imprimiran mayor (>) y los impares menor (<).

Depuralo o miralo asi sino:

Código: C++
  1.  #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.  
  7.     int row = 10, column;
  8.     while (row >=1)
  9.     {
  10.         column =1;
  11.         while (column <= 10)
  12.         {
  13.             if(row % 2)
  14.                 printf("<");
  15.             else
  16.                 printf(">");
  17.             ++column;
  18.         }
  19.            
  20.         printf("ahora esta por terminar una nueva iteracion del primer while");
  21.         --row;
  22.         printf("n");
  23.     }
  24.            
  25.     system ("PAUSE");
  26.     return 0;
  27. }
  28.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

player_

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Dos while juntos
« Respuesta #2 en: Lunes 6 de Julio de 2009, 15:30 »
0
Perfecto, esta vez lo entendí a la primera. Gracias de nuevo por la explicación!!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Dos while juntos
« Respuesta #3 en: Lunes 6 de Julio de 2009, 15:45 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.