FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Random_Suffle en C++Builder???
hola amigos, hace tiempo haciendo pruebas con rand y Random para barajar una matriz de enteros alguien me mostro un codigo que usaba una funcion llamada Random_Suffle que simplificaba mucho el trabajo. Juraria que era una funcion de c++builder pero no encuentro informacion ni ejemplos sobre esa funcion de builder. ¿Alguien puede pasarme info al respecto?
|
#2
|
||||
|
||||
Hola aguml.
Cita:
Ejemplo: Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
¿y si quisiera barajar una cadena? Por ejemplo "Hola mundo" para que hiciera algo como "lo mHaudon", veo que en tu ejemplo lo hace con enteros y no se especifica el tamaño del dato a barajar (con tamaño me refiero a char, int, double, int64...).
|
#4
|
||||
|
||||
Hola aguml.
Cita:
Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
O_o ¿Entonces la funcion random_suffle detecta el tipo de array? Porque he visto que en este caso le pasas la direccion al primer caracter y del ultimo del string ¿Como puede saber el programa que se trata de barajar chars, ints, dwords, int64 u otros si no lo indicamos en ninguna parte de la funcion? Por ejemplo, si yo creara un array de estructuras y le paso la direccion a la primera y a la ultima ¿Como va a saber el tamaño de la estructura?
|
#6
|
||||
|
||||
Hola aguml.
Cita:
Un ejemplo típico: Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Guauuu eso escapa a mis conocimientos, aun no vi las templates y la verdad es que me pierdo en algo tan simple como lo que pones. Ya cuando lo vea seguro me enteraré mejor. Una cosa ¿que es eso de boolalpha? no lo habia visto jamas.
|
#8
|
||||
|
||||
Hola aguml
Es simplemente un especificador de formato. En lugar de mostrar 0 ó 1, muestra false o true. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Cita:
|
#10
|
||||
|
||||
Hola aguml.
Cita:
Y si, siempre que no sea una trivialidad (una o dos líneas) pruebo el código que publico, así como también lo guardo en una carpeta "ClubDelphi\nombre_usuario" por si alguién llegara a necesitarlo mas tarde. Precisamente lo acabo de buscar y te adjunto los fuentes comprimidos. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-09-2014 a las 03:04:43. |
#11
|
||||
|
||||
A mi tu codigo tal cual me funciona, el problema es cuando intento pasarlo a la vcl. Hice esto:
Código PHP:
|
#12
|
||||
|
||||
Hola aguml.
Pero, no habías comentado que estabas implementando la función en un proyecto con interfaz gráfica ... Usala de este modo: Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#13
|
||||
|
||||
ya mañana lo probaré pero de momento hay algo que me ha llamado la atencion. Si la matriz es la misma ¿Por que ha cambiado la forma en que usas random_shuffle? Me refiero a los parametros ¿Porque lo haces de forma diferente siendo la misma matriz?
|
#14
|
||||
|
||||
Hola amigo, he probado tu codigo y funciona muy bien pero he intentado complicar la cosa algo mas y para ello he creado dos formularios mas.
Ahora cuando le doy al boton me muestra un form donde me pide el numero de columnas y filas y le indico y doy al boton del nuevo form y me muestra un tercer form desde el que relleno el array. El problema es que por lo visto random_shuffle se sale del rango y supongo que es por el tema de la gestion de la memoria porque no lo haga bien. Te mando el proyecto con esa parte comentada todo lo que he podido a ver si puedes ayudarme a descubrir que hago mal. Supongo que muchas cosas pero bueno |
#15
|
||||
|
||||
Hola aguml.
Te adjunto los fuentes de un ejemplo que creo te va a servir para comprobar el funcionamiento de random_shuffle, muestra: Como la idea es mostrarte el uso de la función random_shuffle, no compliqué el ejemplo con algunas verificaciones que hubieran sido necesarias pero no hacen a la questión. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#16
|
||||
|
||||
no veo el adjunto. Me parece mejor que lo que yo hice ya que no usas otros forms. ¿Viste lo que hice para insertar los valores? ¿Que te parecio? Me costó mucho jejeje.
|
#17
|
||||
|
||||
Hola aguml.
Cita:
Si, lo estuve mirando , ví el trabajo de delimitación de las comas y está muy bién. Pero apuntando a que veas el manejo que hago de de random_shuffle me resultó mas simple hacerlo en el mismo form y no tan elaborado. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-09-2014 a las 03:04:43. |
#18
|
||||
|
||||
veo que tu usas strings y no usas memoria dinamica como es mi caso y no veo en que fallo yo.
Con respecto a lo que me indicas por privado, si indico solo el numero de filas me da error en ejecucion y si le pongo el & delante de cada parametro solo baraja las filas, osea, {1,2,3}{4,5,6}{7,8,9} lo que hace es barajar los tres grupos y podemos obtener: {1,2,3}{4,5,6}{7,8,9} {1,2,3}{7,8,9}{4,5,6} {4,5,6}{7,8,9}{1,2,3} {4,5,6}{1,2,3}{7,8,9} {7,8,9}{1,2,3}{4,5,6} {7,8,9}{4,5,6}{1,2,3} Pero no baraja todos los elementos. Si todo fuese parte de un mismo array si que lo haria, o sea: {1,2,3,4,5,6,7,8,9} Ahi si que nos barajaria todo pero en el caso anterior lo que me baraja son los punteros a cada fila. Última edición por aguml fecha: 22-09-2014 a las 11:16:37. |
#19
|
||||
|
||||
Lo que se me ocurrió fue esto:
Código PHP:
|
#20
|
||||
|
||||
Si te fijas, en tu codigo que me mandaste lo que haces es barajar las filas pero no el contenido.
Segun he averiguado, usando la memoria dinámica no se consigue que quede la memoria consecutivamente como ocurriría cuando creo el array de forma estática. Ya lo pude ver en un depurador y me lo han confirmado. De ahí viene el problema con random_shuffle asi que la unica solucion que veo es crear un array unidimensional del tamaño filas*columnas y pasar el contenido a este, luego barajar, y por último volcar el resultado al array multidimensional. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Funciona en C++ Builder 6 y no en C++ Builder XE | dmartinezn | C++ Builder | 1 | 07-05-2012 21:08:42 |
.DBP con c++ builder 6 | LuisMiguel | C++ Builder | 2 | 22-03-2012 21:34:46 |
c++ builder | anoniboxx | C++ Builder | 3 | 29-04-2010 21:17:36 |
SQL Builder | josevaldez | Conexión con bases de datos | 0 | 14-07-2005 14:58:00 |
Builder X | Sonic | C++ Builder | 1 | 22-12-2004 16:59:48 |
|