elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16
21  Programación / Programación C/C++ / Re: C++ - Problema con implementación del QuickSort. en: 25 Marzo 2014, 15:18 pm
Código
  1. quickSort(v, l, pivot-1);  //AQUÍ EL ERROR, NO LE RESTABA 1 A PIVOT
Error típico xD
Si, y estos son los peores D: Te puedes tirar horas mirando el código y no verlo... Por cierto, la implementación que te parece?
22  Programación / Programación C/C++ / C++ - Problema con implementación del QuickSort. en: 24 Marzo 2014, 21:00 pm
Buenas, estoy intentando implementar QuickSort para ordenar un vector cualquiera, pero estoy teniendo problemas.
La función ordena correctamente, pero una vez el vector está ordenado mi función recursiva sigue ejecutandose en un bucle infinito, y no logro encontrar el error.
El código del QuickSort es el siguiente:
Código
  1. int splitArray(vector<int>&v, int l, int r)
  2. {
  3.  int pivot = r;
  4.  int leftInd = l;
  5.  while(leftInd < pivot)
  6.  {
  7.    if(v[leftInd] > v[pivot])
  8.    {
  9.      swap(v, leftInd, pivot-1);
  10.      swap(v, pivot-1, pivot);
  11.      if(pivot>0) --pivot;
  12.    }
  13.    else ++leftInd;
  14.  }
  15.  return pivot;
  16. }
  17.  
  18. void quickSort(vector<int>& v, int l, int r)
  19. {
  20.  if(r > l)
  21.  {
  22.    int pivot = splitArray(v, l, r);
  23.    quickSort(v, l, pivot);
  24.    quickSort(v, pivot+1, r);
  25.  }
  26. }
NOTA: las variables "l" y "r" significan "left" y "right". La función swap() es trivial, intercambia las dos variables que se le pasan por parametros (el primer parámetro es el vector, y los dos siguientes las posiciones de los valores a intercambiar).

Es muy probable que la implementación tampoco sea la más eficiente, ya que intenté entender un código de quicksort ya hecho y no lograba verlo, por lo que decidí implementarlo yo por mi cuenta. Acepto críticas y consejos :)

Muchas gracias.

Solucionado:
Código
  1. void quickSort(vector<int>& v, int l, int r)
  2. {
  3.  if(r > l)
  4.  {
  5.    int pivot = splitArray(v, l, r);
  6.    quickSort(v, l, pivot-1);  //AQUÍ EL ERROR, NO LE RESTABA 1 A PIVOT
  7.    quickSort(v, pivot+1, r);
  8.  }
  9. }

Saludos
23  Programación / Programación C/C++ / Re: Generar nombre aleatorio. en: 8 Marzo 2014, 18:13 pm
Imprimir el que? Explícate mejor, no soy el primero en preguntártelo ya...
24  Programación / Programación C/C++ / Re: Generar nombre aleatorio. en: 8 Marzo 2014, 17:38 pm
No entiendes lo que hace tu código. Te he añadido un par de líneas de ayuda para que averigües dónde está tu fallo, aunque ya te lo hayan dicho...
Código
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.    string num;
  11.    int t1;
  12.    int resultado;
  13.    srand(time(0));
  14.    resultado = rand() % 3 + 1;
  15.  
  16.    cout << "Introduzca piedra, papel o tijeras: " << endl;
  17.    cin >> num;
  18.  
  19.    //Resultado aleatorio
  20.    switch(resultado)
  21.    {
  22.        case 1:
  23.             cout << "Tijeras" << endl;
  24.             break;
  25.        case 2:
  26.             cout << "Piedra" << endl;
  27.             break;
  28.        case 3:
  29.             cout << "Papel" << endl;
  30.             break;
  31.             default:
  32.             cout << "Ha ocurrido un error..." << endl;
  33.    }
  34.  
  35.    //Resultados no aleatorios (escogido por el usuario)
  36.    if(num == "tijeras")
  37.    {
  38.        cout << resultado << endl;
  39.    }
  40.    else if(num == "piedra")
  41.    {
  42.        cout << resultado << endl;
  43.    }
  44.    else if(num == "papel")
  45.    {
  46.        cout << resultado << endl;
  47.    }  
  48.    else
  49.    {
  50.        cout << "No es correcto." << endl;
  51.    }
  52.  
  53.    getch();
  54.    return 0;
  55. }
25  Programación / Programación C/C++ / Re: Generar nombre aleatorio. en: 8 Marzo 2014, 14:24 pm
Tienes que inicializar una semilla para que te genere números aleatorios con srand() (http://www.cplusplus.com/reference/cstdlib/srand/).
Código cogido directamente de la página web que te he pasado:
Código
  1. /* initialize random seed: */
  2. srand (time(NULL));
  3.  
  4. /* generate secret number between 1 and 10: */
  5. iSecret = rand() % 10 + 1;
26  Programación / Programación C/C++ / Re: Generar nombre aleatorio. en: 8 Marzo 2014, 14:02 pm
Documentación de rand():
http://www.cplusplus.com/reference/cstdlib/rand/

A veces para saber como funciona algo es tan fácil como buscarlo.

Saludos
27  Programación / Programación C/C++ / Re: Matriz Dinamica en c++. Como rellenarla en coordenadas especificas? en: 8 Marzo 2014, 13:59 pm
Pero si cambio la matriz a char que pasara con los números, porque en una cordenada especifica es donde se debe asignar el asterisco. Y gracias por responder
En una matriz de char puedes almacenar cualquier carácter que exista en la tabla ASCII, por lo tanto también puedes almacenar caracteres numéricos.

Saludos
28  Programación / Programación C/C++ / Re: Error c++ en: 7 Marzo 2014, 19:44 pm
Jajajajaja.

Bueno, lo cierto es que cuando ya has puesto una docena de comentarios con cosas a corregir sobre un programa tan corto no tiene sentido seguir poniendo cosas porque entonces los comentarios se empiezan a solapar. Tampoco es cuestión de echar para atrás a nadie.

desde luego ya te digo yo que si fuese profesor, visto lo visto, me centraría bastante en conseguir que la gente aprendiese a estructurar un programa... me da la sensación que la inmensa mayoría únicamente buscan que el programa funcione y eso me parece un error.
El problema está en que muchas veces lo único que se busca es eso. Yo estoy estudiando ingeniería informática y una compañera que ha venido de telecomunicaciones me comentó que allí cuando programaban lo único que les pedían era que el programa funcionase, y que la organización y eficiencia del código eran completamente secundarias. Supongo que también dependerá del lugar en el que estudies y de lo que estudies, pero a mi me crujen si les entrego un código con nombres de variables como las de este señor.
29  Programación / Programación General / ¿Como seria la estructura de un servidor de un juego multijugador? en: 7 Marzo 2014, 19:27 pm
Estoy desarrollando un juego y estoy pensando en cómo estructurar el servidor para implementar el multijugador. El juego es un estilo arcade de partidas cortas, donde un jugador puede crear una partida (alojada en el servidor de momento) y el resto de jugadores unirse a ella.
Tengo pensado crear una clase Servidor, desde la que se gestionarán las partidas mediante multithreading. Es decir, existirá una clase Partida que se ejecutará en un nuevo thread, y desde la cual se gestionarán también las conexiones de sus distintos jugadores mediante nuevos threads (un thread por jugador, que contendrá un socket a su vez).
Podríamos decir entonces, que la estructura del servidor que estoy describiendo sería algo como:

Código:
                       -> Jugador > Socket
          -> Partida  -> Jugador > Socket
                      -> Jugador > Socket

                      -> Jugador > Socket
Servidor  -> Partida  -> Jugador > Socket
                      -> Jugador > Socket

                      -> Jugador > Socket
          -> Partida  -> Jugador > Socket
                      -> Jugador > Socket
Donde cada objeto perteneciente al esquema sería un nuevo thread (excepto los sockets, que pertenecen al objeto Jugador).

La verdad, no creo que esta sea la mejor forma ya que en caso de que haya varias partidas llenas la cantidad de threads sería altisima, por eso me gustaría que me dierais opinión y consejo sobre esto.

Gracias.
30  Programación / Programación General / Re: Programa de autoapuntado grafico en: 6 Marzo 2014, 20:06 pm
Hola, gracias por la respuesta. Porque crees que no servira demasiado? Con esta herramienta en particular?

Lo ideal sería inyección DLL por el rápido acceso a memoria, ya que desde un programa externo te va a ser mucho más complicado y va a rendir mucho menos. Pero si que sea un bot externo es prioritario, podrías intentar hacer algo tipo proxy.

Saludos
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines