Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al asignar variables (https://www.clubdelphi.com/foros/showthread.php?t=10105)

Majo 11-05-2004 04:20:13

Problema al asignar variables
 
Hola amigos.

El problema que tengo es el siguiente.

A,Lkm: Double;
A:=Lkm;

Al correr el programa, surgen cietos valores que no son coherentes.
Luego procedo a depurar paso a paso y me encuentro con lo siguiente

Al pasar el mouse sobre la variable Lkm me muestra el valor 19.25836958, ejecuto la linea A:=Lkm y me llevo la sorpresa que la variable A queda con valor = 0

Que puede estar pasando???? si alguien tiene idea de que puede estar pasando por favor ayudeme.

marcoszorrilla 11-05-2004 07:51:13

Desde luego existe algún error en el código justo antes de la asignación:
Código Delphi [-]
Var
A,Lkm: Double;

begin
Lkm:=19,222222;
.
.
.
.
ShowMessage('Contenido de Lkm antes de asignar:'+FormatFloat(',0.00000',Lkm));
A:=Lkm;
ShowMessage('Contenido de a despues de asignar:'+FormatFloat(',0.00000',A));

Un Saludo.

Majo 11-05-2004 16:56:58

El código es el siguiente:

Código:

procedure ModificarJacobianaConTRFS(var Jacobiana:TRealMatriz;Y:TVariantMatriz;Vi,Di:TRealVector;var TapAnterior:Double);
var IndiceTRFs:TIntegerArray;
        vectorEcuacionTRF:TRealVector;
        i,j,NumBarraReg,NumBarraNR,NumeroBarraPosTap:integer;
        Vk,Vm,Ykm,Ykk,Ykm2,Ymm:Variant;
        dPmDTk,dPkDTk,dQmDTk,dQkDTk,Nkm,Lmk2,Lkm,Nmk,Lmk,Radio,Theta,Radio1,Theta1,Tap2:Double;
        puta:integer;
begin
  IndiceTRFs:=BuscarIndicesTRFs();
  for j:=0 to length(IndiceTRFs)-1 do
  begin
  Setlength(VectorEcuacionTRF,Length(jacobiana));
    with form2.Components[IndiceTRFs[j]] as TTransformador do
    begin

      Tap2:=(form2.Components[IndiceTRFs[j]] as TTransformador).Tap;
      NumBarraReg:=BuscarNroDeBarraDadoUsrNumBarra(NumeroBarraARegular);
      NumBarraNR:=BuscarNroDeBarraDadoUsrNumBarra(NumeroBarraNoRegulada);
      NumeroBarraPosTap:=BuscarNroDeBarraDadoUsrNumBarra(NumeroBarraLadoTap);
      Vk:=VarcomplexCreate(TensionARegular,Di[NumBarraReg]);
      Vm:=VarcomplexCreate(Vi[NumBarraNR],Di[NumBarraNR]);
      Ykm:=Admy;
      Nmk:=(Vm*Ykm*conjugado(Vk)).Real;
      Lmk:=(Vm*Ykm*conjugado(Vk)).imaginary;
      Nkm:=(Vk*Ykm*conjugado(Vm)).Real;
      Lkm:=(Vk*Ykm*conjugado(Vm)).imaginary;

      if NumBarraReg = NumeroBarraPosTap then
      begin
        DPkDTk:=Nkm-2*Tap*TensionARegular*TensionARegular*Ykm.real;
        DQkDTk:=Lkm+2*Tap*TensionARegular*TensionARegular*(Ykm.Imaginary);
        DPmDTk:=Nmk;
        DQmDTk:=Lmk;

        Y[NumBarraReg][NumBarraReg]:=Y[NumBarraReg][NumBarraReg]+(Tap*Tap*Ykm)-(TapAnterior*TapAnterior*Ykm);
        Y[NumBarraNR][NumBarraReg]:=-Tap*Ykm;
        Y[NumBarraReg][NumBarraNR]:=-Tap*Ykm;

      end
      else
      begin
        DPmDTk:=Nmk-2*Tap*Vi[NumBarraNR]*Vi[NumBarraNR]*Ykm.Real;
        DQmDTk:=Lmk+2*Tap*Vi[NumBarraNR]*Vi[NumBarraNR]*(Ykm.Imaginary);
        DPkDTk:=Nkm;
        DQkDTk:=Lkm;
        Y[NumBarraNR][NumBarraNR]:=Y[NumBarraNR][NumBarraNR]+(Tap*Tap*Ykm)-(TapAnterior*TapAnterior*Ykm);
        Y[NumBarraNR][NumBarraReg]:=-Tap*Ykm;
        Y[NumBarraReg][NumBarraNR]:=-Tap*Ykm;
      end;
    TapAnterior:=Tap;
    end;
    for i:=0 to NroDeBarras-2 do
    begin
      vectorEcuacionTRF[i]:=0;
      if (NumBarraReg-1)= i then
      begin
        vectorEcuacionTRF[i]:=DPkDTk;
        vectorEcuacionTRF[i+NroDeBarras-1]:=DQkDTk;
      end;
      if (NumBarraNR-1)= i then
      begin
        vectorEcuacionTRF[i]:=DPmDTk;
        vectorEcuacionTRF[i+NroDeBarras-1]:=DQmDTk;
      end;
    end;

    for i:=0 to NroDeBarras-2 do
    begin
      Jacobiana[i][NumBarraReg-1]:=vectorEcuacionTRF[i];
    end;
  end;
end;



La franja horaria es GMT +2. Ahora son las 16:36:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi