Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dbr69 en 15 Enero 2016, 00:53 am



Título: duda array [c++]
Publicado por: dbr69 en 15 Enero 2016, 00:53 am
Hola buenas,si este tema no es adecuado aquí perdón soy nuevo jeje , 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.


Título: Re: duda array [c++]
Publicado por: 0xFer en 15 Enero 2016, 01:49 am
Ponte a jugar un rato con los bucles (http://c.conclase.net/curso/?cap=005b).


Título: Re: duda array [c++]
Publicado por: dbr69 en 15 Enero 2016, 02:29 am
no es cuestion de bluces , no es cuestion de mostrar 3 numeros y luego 4 y luego 5 ....


Título: Re: duda array [c++]
Publicado por: 0xFer en 15 Enero 2016, 03:15 am
no es cuestion de bluces , no es cuestion de mostrar 3 numeros y luego 4 y luego 5 ....
Bueno en realidad si xD

El siguiente código hace mao o meno lo que quieres;

Código
  1. int array [] = { 3,4,2,4};
  2. int NumRondas = 4;
  3.  
  4. for( int Ronda_Actual = 1; Ronda_Actual <= NumRondas;Ronda_Actual++){
  5.    cout << endl << "Ronda Número: " << Ronda_Actual << endl;
  6.    for( int i = 0; i < Ronda_Actual; i++)
  7.     cout << array[i] << endl;
  8. }

El Número de ronda empieza en 1 y en ese caso se imprime el primer elemento del array, Puedes hacer que empiece en cualquier ronda pero tienes que poner condicionales para no pasarte del tamaño del array. El código no es exactamente lo que quieres pero es sólo para hacerte una idea.


Título: Re: duda array [c++]
Publicado por: Orubatosu en 15 Enero 2016, 12:07 pm
Esto se llama "bucles anidados"

Un bucle dentro de otro bucle, es un concepto sencillo como te han indicado antes, y muy común en programación.

Practicalo hasta dominarlo, porque es algo básico


Título: Re: duda array [c++]
Publicado por: dbr69 en 15 Enero 2016, 12:42 pm
a vale claro , no lo habia visto , y yo tampoco me habia explicado muy bien por que queri un resultado estilo:

ronda 1: 1 ,2 3.
ronda 2: 1,2,3,4.
ronda :1,2,3,4,5. y asi..


tambien e caido que en vede hacerlo con for lo hare con while ya que por ejemplo en la ronda 7 si quiero salir meto una variable booleana y asi en el while pongo de condicion que  si es false salga .


gracias ;-)