Foros del Web » Programación para mayores de 30 ;) » C/C++ »

c++ array[duda]

Estas en el tema de c++ array[duda] en el foro de C/C++ en Foros del Web. Hola buenas, tengo una duda con la que me estoy comiendo la cabeza y no consigo como sacarla. Imaginaos que creamos una array de tamaño ...
  #1 (permalink)  
Antiguo 14/01/2016, 17:48
 
Fecha de Ingreso: enero-2016
Mensajes: 2
Antigüedad: 8 años, 3 meses
Puntos: 0
c++ array[duda]

Hola buenas, tengo una duda con la que me estoy comiendo la cabeza y no consigo como sacarla.

Imaginaos que creamos una array de tamaño 13 donde en cada posición hay un número.Entoces digamos que va a haber 10 rondas, en la primera ronda, se muestran los 3 primeros valores de la array, en la segunda los 4, en la quinta los 5 y así sucesivamente hasta llegar a la ronda 10 (mostrándose en la última ronda los 13 números).

La duda viene ahora, de primeras pues se me ocurre hacer a lo bruto las 10 rondas, es decir, hacer el código dela primera ronda mostrando los 3 primeros valores, hacer el código de la segunda ronda con los 4 primeros valores y así hasta la ronda 10, pero imaginaos que no son 10 rondas, si no 100, como tenga que hacer las 100 rondas a lo bruto me tiro horas picando código jeje.

Entonces ¿hay alguna forma de manera automática en la que cada vez que se pasa de ronda al mostrar el array se muestra el valor siguiente y los anteriores claro?


Y ya por último, suponer que estamos en la ronda 7, y quiero volver a empezar desde la primera ronda, ¿cómo se podría volver al principio?



Gracias de antemano.
  #2 (permalink)  
Antiguo 14/01/2016, 18:07
 
Fecha de Ingreso: octubre-2013
Mensajes: 44
Antigüedad: 10 años, 5 meses
Puntos: 5
Respuesta: c++ array[duda]

Buenas.

Para simplificar y evitar las repeticiones de código, se utilizan estructuras de control, en este caso bucles..

Para este caso, se puede utilizar la sentencia "for":

Código C++:
Ver original
  1. for (int i=0; i<10; i++) {
  2.   std::cout << i << std::endl; // 0,1,2,3,...,9
  3. }

Como ves un bucle for consta de tres partes: condición inicial, condición final, incremento. Todo el contenido dentro del bucle for se repetirá tantas veces como se indique en la condición. Para tu caso concreto, no bastaría con utilizar un bucle for, hacen falta dos (esto se denomina bucle anidado, uno dentro del otro).

Tienes que repetir un proceso 10 veces, y luego para cada uno de ellos, hacer tantas repeticiones como procesos lleves, deberías entonces poner algo tal que así:

Código C++:
Ver original
  1. for (int i=0; i<10; i++) {  // i desde 0 hasta 9
  2.   for (int j=0; j<i+3; j++) {  // j desde 0 hasta i+3
  3.     std::cout << array[j] << std::endl;
  4.   }
  5. }

Si no lo ves del todo claro, puedes hacer algunas pruebas con un sólo for y cambiando la condición de inicial y final. Si después, quisieras parar en la ronda 7 por ejemplo, bastaría con poner un bloque if-else dentro del primer bucle. Pero eso ya te lo dejo a ti.

Saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:54.