elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con anidamiento de "for":
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con anidamiento de "for":  (Leído 1,478 veces)
Error 404:

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Duda con anidamiento de "for":
« en: 5 Septiembre 2014, 10:58 am »

Hola a todos, os cuento mi problema, he visto que multitud de programas contienen anidamientos de varias instrucciones "for" y la verdad es que no entiendo como funcionan estos anidamientos  :huh: . Creo que es bastante importante entenderlos por la cantidad de opciones que ofrecen, como por ejemplo el ordenamiento en burbuja, asi que si alguien me lo pudiera explicar con algún ejemplo que me indique paso a paso lo que hace o como crea que es la manera más correcta  para aprenderlo bien lo agradecería muchísimo.
Muchas gracias de antemano por su tiempo.


En línea

Si se puede imaginar, se puede programar.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda con anidamiento de "for":
« Respuesta #1 en: 5 Septiembre 2014, 11:07 am »

Código
  1. int matriz[10][20];
  2.  
  3. for(int i=0; i<10; i++){
  4.    for(int j=0; j<20; j++){
  5.        matriz[i][j] = 0;
  6.    }
  7. }

Eso es un ejemplo de cómo inicializar una matriz. El índice i corresponde a, digamos, las filas (10 filas); mientras que j correspondería a las columnas (20 columnas).

Las asignaciones irían en este orden:

Citar
i,j

0,0
0,1
0,2
...
0,19
1,0
1,1
1,2
...
...
9,19


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda con anidamiento de "for":
« Respuesta #2 en: 5 Septiembre 2014, 11:10 am »

Código
  1. int i, j;
  2. int total_exterior = 0;
  3. int total_interior = 0;
  4.  
  5. for ( i=0; i< 3; i++ ) // bucle exterior
  6. {
  7.  total_exterior++;
  8.  
  9.  for ( j=0; j<10; j++ ) // bucle interior
  10.  {
  11.    printf( "i=%d j=%d", i, j );
  12.    total_interior++;
  13.  }
  14. }
  15.  
  16. printf( "total_exterior = %d\n", total_exterior );
  17. printf( "total_interior = %d\n", total_interior );

Un bucle anidado no tiene mucho misterio... el primer bucle que se ejecuta es el exterior, y por cada iteración del bucle exterior se ejecuta el bucle interior en su totalidad.

En el ejemplo que te he puesto, el bucle exterior se ejecuta 3 veces, en cada una de estas iteraciones el bucle interior se ejecuta 10 veces. al final del proceso 'total_exterior' vale 3 (el bucle exterior se ha ejecutado únicamente 3 veces) y 'total_interior' vale 30 (por cada iteración del bucle exterior, el interior se ha ejecutado 10 veces, 3 * 10 = 30 ).
En línea

Error 404:

Desconectado Desconectado

Mensajes: 58



Ver Perfil
Re: Duda con anidamiento de "for":
« Respuesta #3 en: 6 Septiembre 2014, 09:34 am »

Ahhh, entiendo, no era tan difícil, me ha ayudado mucho el pensar que es como una matriz, muchas gracias a los dos por la ayuda¡¡   ;D
En línea

Si se puede imaginar, se puede programar.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines