[C++][Opiniones] Qué os parece esta forma de generar números aleatorios?

Iniciado por anonimo12121, 18 Marzo 2012, 17:28 PM

0 Miembros y 2 Visitantes están viendo este tema.

maxim_o

Pasa exactamente lo mismo, no es el problema de la declaracion de la funcion y el cuerpo de la funcion.
Eliminando la declaracion y poniendo la funcion antes del main pasa lo mismo ...

anonimo12121

Cita de: $Edu$ en 25 Marzo 2012, 16:51 PM
No se C++ pero desde hace tiempo he visto codigos aca en el foro y nunca vi que pongan como pusiste vos:

bool repite (int aleatorio , int matriz[TAM][TAM] , int i , int j );

Asi, como declarando la funcion y luego la dejas abajo con su cuerpo. Si fue esa linea la que hiciste mal entonces es que te esta tomando esa linea como la funcion "repite" y entonces devolvera falso siempre, lo que entonces no terminara mas el bucle do-while que hiciste luego.

Si estoy equivocado quiero que me expliquen el porque de "declarar" la funcion antes.
me acabo de dar cuenta de lo que dices XD nunca he visto esto de blabla
  • como parametro
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746


anonimo12121

a esto XD
bool repite (int aleatorio , int matriz[TAM][TAM] , int i , int j );
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

$Edu$

Alguien que sepa C++ y nos venga a retar de que hablamos sin saber y nos explique esto?

Xandrete

Cita de: $Edu$ en 27 Marzo 2012, 14:23 PM
Alguien que sepa C++ y nos venga a retar de que hablamos sin saber y nos explique esto?

No es difícil de entender. La declaración de la función en la que no se especifica el cuerpo de la misma (hablando en plan rudo, la que acaba en punto y coma) se llama prototipo. Se utilizan mucho cuando se quiere separar la implementación de la especificación. Por ejemplo, imagínate que tienes una función foo(). En C/C++ puedes tener la definición de la función en un archivo, junto a una descripción exhaustiva de su comportamiento (precondiciones, postcondiciones, invariantes, análisis de eficiencia, justificación, etc) y en otro fichero puedes tener el código de la función, que puedes ir cambiando para mejorar (o empeorar, según lo que hagas) cosas. La función hace siempre lo mismo, lo que cambia es la manera en que lo hace. Otra utilidad de la declaración de prototipos es cuando tienes dos funciones que se llaman la una a la otra. Por ejemplo:

Código (cpp) [Seleccionar]
int spam(int n) {
return n+foo(n-2);
}

int foo(int n) {
return n+spam(n-1);
}


Si intentaras compilar un programa con estas funciones, obtendrías un error. Cuando  foo llama a spam, este ya está definido. Sin embargo, no sucede lo mismo cuando spam llama a foo (la declaración de la función está más abajo). Esto se soluciona añadiendo el prototipo de la función foo antes de spam:

Código (cpp) [Seleccionar]
int foo(int n);

int spam(int n) {
return n+foo(n-2);
}

int foo(int n) {
return n+spam(n-1);
}


Como ves, en la mayoría de las situaciones, no hace falta declarar los prototipos antes de definir el cuerpo de la función. La única tesitura en que es necesario es en la que te he descrito anteriormente. Por lo demás, puedes hacerlo o no (depende del procedimiento y el estilo que estilo sigas a la hora de programar, y de si documentas o no tus programas).

Saludos

$Edu$

Gracias, entonces maxim_o, te toca debuggear bien el codigo para ver si tu codigo hace lo que tiene que hacer o no. Yo deje una forma de hacer los numeros aleatorios sin repetir, es cosa de crear la funcion y luego modificar el vector por partes.

maxim_o

Ya, a ver ahora con las vacaciones que tengo mas tiempo saco el fallito, que seguro que es alguna tonteria que pase por alto o similar!
Gracias a todos!

anonimo12121

Yo en cuanto termine mi web os la pongo para que veáis que pro me ha quedado mi primera versión del sudöku. (gráfico)
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746