Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sayuri108

#1
hola de nuevo, al fin tuve clase con mi profesor y me dijo que lo que debia hacer era poner
Código (cpp) [Seleccionar]
void codigoAleatorio(tCodigo & codigo, bool admiteRepetidos);
y asi hace referencia al array que yo quiero y no me genera uno nuevo cada vez.
#2
Vale, creo que ya lo entiendo, muchas gracias por tu ayuda.  :)
#3
void codigoAleatorio(tCodigo codigo, bool admiteRepetidos): elige
aleatoriamente un código y lo devuelve con el parámetro de salida. El
segundo parámetro permite indicar si se admiten colores repetidos en él.

para eso nos dio tambien como hacer  una funcion que genere numeros aleatorios y con esa funcion rellenamos el array dentro del void.
#4
entonces a la vuelta de vacaciones tendre que hablar con el profesor, por que quiere que use esa funcion y que haga algo determinado y no me puedo salir del guion...
Gracias por la ayuda
#5
entonces como puedo hacerlo?
por que me piden que lo haga asi (es un trabajo de clase) y por narices tengo que usar voids,de hecho me ponen algunos asi:
Código (cpp) [Seleccionar]
void codigoAleatorio(tCodigo codigo, bool admiteRepetidos);
y tengo que rellenarlos, otros solo me dan el nombre de la funcion.
y los que me dan "completos" no puedo modificarlos
asi que por ejemplo no puedo ponerle :
Código (cpp) [Seleccionar]
void codigoAleatorio(const tCodigo codigo, bool admiteReetidos);
#6
for (int s = 0; s < TAM_CODIGO - 1; s++)

es que comparo dos cosas en las posiciones del array, entonces no quiero que se salga del array (comparar el ultimo elemento del array con la nada), el ultimo elemento de array solo se compara con su anterior, entonces x solo puede llegar a valer como maximo 3. Pero el problema es que en cuanto pasa a un void, el array cambia automaticamente de tamaño, en vez de seguir siendo de tamaño cuatro, pasa a ser de tamaño 1.

ahi dejo una captura de como se cambia el solito
https://gyazo.com/3643d198efb64fb42a8b85c5cb4c50bf
https://gyazo.com/072244555cacd0ef0a6fb45f4a39485b
#7
vale, gracias.
Este es mi main:
Código (cpp) [Seleccionar]
int main() {
int opcion = menu();
EjecutarMenu(opcion);
return 0;
}
int EjecutarMenu(int opcion) {
tCodigo codigo = {};
tCodigo hipotesis = {};
bool admiteRepetidos = false;
int colocados = 0, descolocados = 0;
while (opcion != 0) {
switch (opcion) {
case (1): {//funcion no repetidos
opcion1(codigo, hipotesis, admiteRepetidos, colocados, descolocados);
}
  break;
case (2): {//funcion con repetidos
opcion2(codigo, hipotesis, admiteRepetidos, colocados, descolocados);
}
  break;
}
}
return opcion;
}


las funciones opcion1 y opcion2 son dos void bastante parecidos y en cuanto llega al void cambia el  tamaño del array.

Código (cpp) [Seleccionar]
void opcion1(tCodigo codigo, tCodigo hipotesis, bool admiteRepetidos, int colocados, int descolocados) {
admiteRepetidos = false;
codigoAleatorio(codigo, admiteRepetidos);
cout << "Introduce el codigo (palabra de 4 letras con alguna de las siguientes, R, Z, V, A, M, B): ";
for (int s = 0; s < TAM_CODIGO - 1; s++)
cin >> hipotesis[s];
compararCodigos(codigo, hipotesis, colocados, descolocados);
ImprimirPantalla(codigo, hipotesis, colocados, descolocados);
while (colocados != TAM_CODIGO)
cout << "Introduce el codigo (palabra de 4 letras con alguna de las siguientes, R, Z, V, A, M, B): ";
for (int s = 0; s < TAM_CODIGO - 1; s++)
cin >> hipotesis[s];
compararCodigos(codigo, hipotesis, colocados, descolocados);
ImprimirPantalla(codigo, hipotesis, colocados, descolocados);
}
#8
Programación C/C++ / Problemas con los void
6 Enero 2018, 15:00 PM
Hola!
Estoy haciendo un programa en el que uso void y arrays, y no se por que en cuanto llego a un void el array cambia de tamaño  :huh:
Este es el punto deonde me da problemas:

Código (cpp) [Seleccionar]
const int tamaño = 4;

typedef int tCode[tamaño];

void codigoAleatorio(tCode code) {    //Aqui cambia a ser code ={0} en vez de code = {0,0,0,0}
int random = 0;
srand(time(NULL));
for (int i = 0; i < TAM_CODIGO; i++) {
random = rand() % 7;
code[i] = random; (aqui no se por que no salen [] con la i dentro despues de code)
}
}

el main esta asi:
int main(){
    tCode code = {};
     /*funcion*/
}


alguna idea?
Gracias.