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 - BlackZeroX

#481
Mira buscando algoritmos para diccionario llego aquí, me quedo con el de vb6 no me pide nada extra que instalar.

Nota: Compila con un FrameWork mas bajo a el 4... ya que no usas todo el potencial del mismo...

Dulces Lunas!¡.
#482
jejejeje... Perdón Error Mio al crear la clase... tenia que hacer esto:

oPila := TPila.Create;

Dulces Lunas!¡.
#483
Por que me marca error SIEMPRE cuando trato de dimensionar o acceder a la variable udtArray?

Código (delphi) [Seleccionar]


type
  TValue = record
    iFlags: Integer;
    fValue: real;
  end;

  TArrayValue = Array Of TValue;

  TPila = class(TObject)
  private
    udtArray: TArrayValue; // Array Of TValue
  public
    constructor Create(); overload;
    constructor Create(var oPila: TPila); overload;
    procedure Push(udtVar: TValue); overload;
    procedure Push(fValue: Real; iFlags: Integer); overload;
    function Pop(): TValue;
    function Count(): Integer;
    function Get(Index: Integer): TValue;
    procedure Invert();
    procedure Clear();
    procedure Clone(var oPila: TPila);
  end;

implementation

constructor TPila.Create();
begin
  Self.Clear;
end;

constructor TPila.Create(var oPila: TPila);
begin
  Self.Clone(oPila);
end;

procedure TPila.Push(fValue: Real; iFlags: Integer);
var
  iLength: Integer;
  iIndex: Integer;
begin
  iIndex := Self.Count;
  iLength := (iIndex + 1);
  SetLength(Self.udtArray, iLength);
  udtArray[iIndex].iFlags := iFlags;
  udtArray[iIndex].fValue := fValue;
end;

procedure TPila.Push(udtVar: TValue);
begin
  Push(udtVar.fValue, udtVar.iFlags);
end;

function TPila.Pop(): TValue;
var
  iNewLength: Integer;
  udtRet: TValue;
begin
  if (Self.Count = 0) then begin
    udtRet.iFlags := 0;
    udtRet.fValue := 0;
  end else begin
    iNewLength := High(Self.udtArray);
    udtRet := Self.udtArray[iNewLength];
    SetLength(Self.udtArray, iNewLength);
  end;
  Result := udtRet;
end;

function TPila.Count(): Integer;
begin
  Result := Length(Self.udtArray);
end;

procedure TPila.Invert();
var
  i: Integer;
  j: Integer;
begin
  if not (Count = 0) then begin
    j := High(Self.udtArray);
    for i:= Low(Self.udtArray) to (High(Self.udtArray) div 2) do begin
      SwapFloat(Self.udtArray[i].fValue, Self.udtArray[j].fValue);
      SwapInt(Self.udtArray[i].iFlags, Self.udtArray[j].iFlags);
      j := (j - 1);
    end;
  end;
end;

function TPila.Get(Index: Integer): TValue;
var
  udtRet: TValue;
begin
  if (Index < Self.Count) then begin
    udtRet := Self.udtArray[Index];
  end else begin
    udtRet.iFlags := 0;
    udtRet.fValue := 0;
  end;
  Result := udtRet;
end;

procedure TPila.Clear();
begin
  SetLength(Self.udtArray, 0);
end;

procedure TPila.Clone(var oPila: TPila);
begin
  oPila.udtArray := Self.udtArray;
end;
#484
Cita de: Golo12 en 21 Marzo 2012, 04:35 AM
Necesitaba escribir algo muy rapido y tome este papel del escritorio, y me cago de la risa cuando vi esta formula cientifica.
http://dl.dropbox.com/u/53289214/62x2.jpg
tiene 20 o 21 años la persona responsable de esta imagen.

En primera esa NO es una FORMULA CIENTIFICA y en segunda ya madura.

Dulces Lunas!¡.
#485
.
Quizas sirva de algo. http://xmlrpc.scripting.com/spec.html

Dulces Lunas!¡.
#486
A mi criterio este "paper" si se le puede decir así (no tiene el formato ni siquiera de un Paper) le hace falta mas información... y es mas de lo mismo.

Dulces Lunas!¡.
#487
Foro Libre / Re: Hablemos de politica
13 Marzo 2012, 04:38 AM
Cita de: andres_5 en 10 Marzo 2012, 20:06 PM

¿Pensais que este pais esta gobernado por piratas?


No tengo ni la menor idea de que país es.

Dulces Lunas!¡.
#488
Cita de: APOKLIPTICO en 12 Marzo 2012, 20:32 PM
Ahora no crashea, pero se cierra el programa...
Como puedo hacer para mantenerlo funcionando??

no habia leido bien esto...

usa

pthread_join();

Para detener el hilo madre que creo los hijos, para que asi sigan los hijos como si nada hasta que todos terminen,

Dulces Lunas!¡.
#489
Cita de: oPen syLar en 12 Marzo 2012, 20:53 PM
Seguro que pthread_create() no tira un segfault.? Recuerdo que tenia que llamar a ptw32_processInitialize() antes de crear un nuevo hilo sobre MinGW...

De hecho si tiene su segfault y es por que hace uso de delete en la siguiente linea despues de crear el hilo y el hilo intenta acceder a la memoria ya eliminada... tambien por lo del & en el casting el parametro del proceso hijo.

Dulces Lunas!¡.
#490
Código (cpp) [Seleccionar]

        char *pszIname = new char[strlen(d->name)];
        ZeroMemory(pszIname, strlen(d->name));
        strcpy(pszIname, d->name);
       delete pszIname;


Debes sumarle un 1 a strlen(d->name) este byte mas es el byte nulo de termino de cadena...
No liberes la memoria despues de la creacion del hilo (delete), en lugar de esto usa pthread_exit(di) para que pthread_join() te retorne el puntero a esta memoria y puedas liberarla con delete tambien puedes usar pthread_detach() para que no gastes la pila de retornos d elos hilos si ocupas pthread_exit(NULL)

Código (cpp,4,5) [Seleccionar]


void *HandleAdapter(void *di)
{
    do rand();
    while(true);
    char *d =  (char*) di;
    cout << d << endl;
...



las lineas sombreadas quitalas no sirven de nada... el casting ponlo sin el signo & tal cual de lo dejo arriba.

Leete la documentacion de pthread, leete un manual de C/C++ basico... ya que por lo que veo te confundes un poco aun.

http://pubs.opengroup.org/onlinepubs/009604599/functions/pthread_detach.html

Dulces Lunas!¡.