• Sábado 27 de Abril de 2024, 02:57

Autor Tema:  Fijar Variables  (Leído 941 veces)

rechy

  • Miembro activo
  • **
  • Mensajes: 69
    • Ver Perfil
Fijar Variables
« en: Miércoles 21 de Enero de 2004, 18:18 »
0
Hola que tal. Quisiera saber como puedo fijar una variable en este caso RHOT del siguiente codigo:

Function calcular_SG(SG, T)

'Aceite Combustible

Dim DELTA As Single
Dim BT As Single
Dim HYC As Single
Dim RHO As Single
Dim RHOT As Single
Dim RHO60 As Single
Dim ALPHA As Single
Dim VCF As Single
Dim SG60 As Single

Const C1 = 0.00001278
Const C2 = 0.0000000062
Const C3 = 141360.198
Const C4 = 131.5
Const C5 = 141.5
Const C6 = 2.7
Const C7 = 999.012
Const K0 = 103.872
Const K1 = 0.2701
Const e = 2.718281828459


'Diferencia Temperatura Observada y Base de Temperatura
DELTA = T - 60

'Termino de Correccion de Hidrometro
HYC = 1# - C1 * DELTA - C2 * DELTA ^ 2

'Conversion Densidad Relativa a Densidad
RHO = SG * C7

'Aplicacion de Correccion de Hidrometro
RHOT = RHO * HYC

'Inicializa la Densidad a 60 F
RHO60 = RHOT

'Coeficiente de Expansion Termica
T11 = K0 / RHO60
T12 = CSng(T11) / CSng(RHO60)
T13 = K1 / RHO60
ALPHA = CSng(T12) + CSng(T13)

'Factor de Correccion de Volumen
T16 = (-ALPHA * DELTA - 0.8 * ALPHA ^ 2 * DELTA ^ 2)
T15 = T16 / 1#
VCF = T15

T17 = e ^ T15

'Calculo de Densidad a 60 F
T18 = RHOT / T17


T20 = T18 / C7

SG60 = T20

calcular_SG = SG60

El problema es que quiero repetir este codigo 10 veces fijando esa variable RHOT y hacer una comparacion final de los 10 resultados y si tienen una diferencia de 0.005 que me tome el ultimo.

Espero y alguien pueda orientarme.

Saludos para todos.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Fijar Variables
« Respuesta #1 en: Miércoles 21 de Enero de 2004, 18:28 »
0
Hola rechy.

Declara la variable RHOT a nivel de módulo como una matriz a dimensionar dinámicamente:

Código: Text
  1.  
  2. Private RHOT() As Single
  3.  
  4. Function calcular_SG(SG, T)
  5.  
  6.    On Local Error Resume Next
  7.    Dim intIndex as integer
  8.    intIndex = Ubound(RHOT)
  9.    intIndex = intIndex + 1
  10.    If IntIndex > 1 then
  11.       Redim Preserve RHOT(1 to intIndex)
  12.    else
  13.       Redim RHOT(1 to 1)
  14.    end if
  15.    .
  16.    .
  17.    .
  18.    'Aceite Combustible
  19.    .
  20.    .
  21.    .
  22.    'Aplicacion de Correccion de Hidrometro
  23.    RHOT(intIndex) = RHO * HYC
  24.    .
  25.    .
  26.    .
  27. End Sub
  28.  
  29.  

De esta forma cada vez que llames a la función almacenas el valor que te interese en una nueva dimensión RHOT(intIndex) de forma que puedes tener disponibles todos los valores cuando te interese.

Suerte.