FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Desde luego existe algún error en el código justo antes de la asignación:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
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; Última edición por Majo fecha: 11-05-2004 a las 17:05:55. |
|
|
|