Ayuda con FOR por FAVOR!!!
Publicado por Mc_Gregor (5 intervenciones) el 28/06/2007 01:28:32
'La idea de este codigo seria generar unos valores que se dan en el tiempo, son datos de cinetica
'En realidad el ciclo debe ir hasta 3600 segundos para luego graficarlo en un chart en el tiempo
'Pero se podrian tomar valores cada 5 minutos y usarlos para graficar en funcion al tiempo es decir
'el valor de TG(0) en funcion al tiempo 0 <-- cero
'el valor siguiente TG(300) en funcion al tiempo 5 minutos
'el valor siguiente TG(600) en funcion al tiempo 10 minutos
'lo mismo para DG(0) - MG(0) etc
'y graficar todos en funcion al tiempo, en un chart de lineas 2d o como sea
'para ver el rendimiento de cada uno en funcion al tiempo..
Private Sub cmdGenerar_Click()
Select Case cmboTemp.Text '<--- Este es un combo de Temperaturas
Case " 50 "
K1 = 8.33333333333333E-04
K2 = 1.83333333333316E-03
K3 = 3.58333333333337E-03
K4 = 2.04666666666667E-02
K5 = 4.03333333333337E-03
K6 = 1.16666666666667E-04
Case " 55 "
K1 = 1.13862210963795E-03
K2 = 2.32095909473418E-03
K3 = 5.74246109883715E-03
K4 = 2.89744496993089E-02
K5 = 4.69766632997586E-03
K6 = 1.46495829609785E-04
Case " 60 "
K1 = 1.54124316379209E-03
K2 = 2.91755385164856E-03
K3 = 0.009073207398491
K4 = 4.05930299722181E-02
K5 = 5.4464367252848E-03
K6 = 1.82698746932929E-04
Case " 65 "
K1 = 2.06763524737655E-03
K2 = 3.64277221337595E-03
K3 = 1.41432193654767E-02
K4 = 5.63062979488651E-02
K5 = 6.28699601307812E-03
K6 = 2.26365055037794E-04
End Select
VolTotal = 1.215124 '<-- Se carga este valor en la variable volTotal
TG(0) = 1 / VolTotal
DG(0) = 0 / VolTotal
MG(0) = 0 / VolTotal
Gly(0) = 0 / VolTotal
MEster(0) = 0 / VolTotal
MeOH(0) = 6 / VolTotal
'---------------------------------------- HASTA AQUI TODO BIEN!!!
'Se que algo dentro del for esta mal pero no le entiendo nomas
'Los valores en el indice (cero) mas arriba son los iniciales + los valores de las K
Dim x, i, j, k, l, m As Integer
For x = 1 To 60
For i = 1 To 60
For j = 1 To 60
For k = 1 To 60
For l = 1 To 60
For m = 1 To 60
TG(x) = TG(x - 1) + K2 * DG(x - 1) * MEster(x - 1) - K1 - TG(x - 1) * MeOH(x - 1)
DG(i) = DG(i - 1) + K1 * TG(i - 1) * MeOH(i - 1) - K3 * DG(i - 1) * MeOH(i - 1) + K4 * MG(i - 1) * MEster(i - 1) - K2 * DG(i - 1) * MEster(i - 1)
MG(j) = MG(j - 1) + K3 * DG(j - 1) * MeOH(j - 1) - K4 * MG(j - 1) * MEster(j - 1) + K6 * Gly(j - 1) * MEster(j - 1) - K5 * MG(j - 1) * MeOH(j - 1)
Gly(k) = Gly(k - 1) + K5 * MG(k - 1) * MeOH(k - 1) - K6 * Gly(k - 1) * MEster(k - 1)
MEster(l) = MEster(l - 1) + K1 * TG(l - 1) * MeOH(l - 1) + K3 * DG(l - 1) * MeOH(l - 1) + K5 * MG(l - 1) * MeOH(l - 1) - K6 * Gly(l - 1) * MEster(l - 1) - K4 * MG(l - 1) * MEster(l - 1) - K2 * DG(l - 1) * MEster(l - 1)
MeOH(m) = MeOH(m - 1) - MEster(m) - MEster(m - 1) '<-- Aqui se queda y me dice q el subindice esta fuera del intervalo marcado en amarillo
Next
Next
Next
Next
Next
Next
lbl1.Caption = TG(60) '<-- Tendria q entregarme el valor q quedo en el TG(60) Tiene q ser=0.596046
lbl2.Text = DG(60) '<-- 0.116956
lbl3.Text = MG(60) '<-- 0.068453
lbl4.Text = Gly(60) '<-- 0.041506 Los resultados tendrian q dar asi
lbl5.Text = MEster(60) '<-- 0.378379
lbl6.Text = MeOH(60) '<-- 4.5594
End Sub
PORFAVOR HEEEEEEEEEEEEELP MEEEEEE :/
'En realidad el ciclo debe ir hasta 3600 segundos para luego graficarlo en un chart en el tiempo
'Pero se podrian tomar valores cada 5 minutos y usarlos para graficar en funcion al tiempo es decir
'el valor de TG(0) en funcion al tiempo 0 <-- cero
'el valor siguiente TG(300) en funcion al tiempo 5 minutos
'el valor siguiente TG(600) en funcion al tiempo 10 minutos
'lo mismo para DG(0) - MG(0) etc
'y graficar todos en funcion al tiempo, en un chart de lineas 2d o como sea
'para ver el rendimiento de cada uno en funcion al tiempo..
Private Sub cmdGenerar_Click()
Select Case cmboTemp.Text '<--- Este es un combo de Temperaturas
Case " 50 "
K1 = 8.33333333333333E-04
K2 = 1.83333333333316E-03
K3 = 3.58333333333337E-03
K4 = 2.04666666666667E-02
K5 = 4.03333333333337E-03
K6 = 1.16666666666667E-04
Case " 55 "
K1 = 1.13862210963795E-03
K2 = 2.32095909473418E-03
K3 = 5.74246109883715E-03
K4 = 2.89744496993089E-02
K5 = 4.69766632997586E-03
K6 = 1.46495829609785E-04
Case " 60 "
K1 = 1.54124316379209E-03
K2 = 2.91755385164856E-03
K3 = 0.009073207398491
K4 = 4.05930299722181E-02
K5 = 5.4464367252848E-03
K6 = 1.82698746932929E-04
Case " 65 "
K1 = 2.06763524737655E-03
K2 = 3.64277221337595E-03
K3 = 1.41432193654767E-02
K4 = 5.63062979488651E-02
K5 = 6.28699601307812E-03
K6 = 2.26365055037794E-04
End Select
VolTotal = 1.215124 '<-- Se carga este valor en la variable volTotal
TG(0) = 1 / VolTotal
DG(0) = 0 / VolTotal
MG(0) = 0 / VolTotal
Gly(0) = 0 / VolTotal
MEster(0) = 0 / VolTotal
MeOH(0) = 6 / VolTotal
'---------------------------------------- HASTA AQUI TODO BIEN!!!
'Se que algo dentro del for esta mal pero no le entiendo nomas
'Los valores en el indice (cero) mas arriba son los iniciales + los valores de las K
Dim x, i, j, k, l, m As Integer
For x = 1 To 60
For i = 1 To 60
For j = 1 To 60
For k = 1 To 60
For l = 1 To 60
For m = 1 To 60
TG(x) = TG(x - 1) + K2 * DG(x - 1) * MEster(x - 1) - K1 - TG(x - 1) * MeOH(x - 1)
DG(i) = DG(i - 1) + K1 * TG(i - 1) * MeOH(i - 1) - K3 * DG(i - 1) * MeOH(i - 1) + K4 * MG(i - 1) * MEster(i - 1) - K2 * DG(i - 1) * MEster(i - 1)
MG(j) = MG(j - 1) + K3 * DG(j - 1) * MeOH(j - 1) - K4 * MG(j - 1) * MEster(j - 1) + K6 * Gly(j - 1) * MEster(j - 1) - K5 * MG(j - 1) * MeOH(j - 1)
Gly(k) = Gly(k - 1) + K5 * MG(k - 1) * MeOH(k - 1) - K6 * Gly(k - 1) * MEster(k - 1)
MEster(l) = MEster(l - 1) + K1 * TG(l - 1) * MeOH(l - 1) + K3 * DG(l - 1) * MeOH(l - 1) + K5 * MG(l - 1) * MeOH(l - 1) - K6 * Gly(l - 1) * MEster(l - 1) - K4 * MG(l - 1) * MEster(l - 1) - K2 * DG(l - 1) * MEster(l - 1)
MeOH(m) = MeOH(m - 1) - MEster(m) - MEster(m - 1) '<-- Aqui se queda y me dice q el subindice esta fuera del intervalo marcado en amarillo
Next
Next
Next
Next
Next
Next
lbl1.Caption = TG(60) '<-- Tendria q entregarme el valor q quedo en el TG(60) Tiene q ser=0.596046
lbl2.Text = DG(60) '<-- 0.116956
lbl3.Text = MG(60) '<-- 0.068453
lbl4.Text = Gly(60) '<-- 0.041506 Los resultados tendrian q dar asi
lbl5.Text = MEster(60) '<-- 0.378379
lbl6.Text = MeOH(60) '<-- 4.5594
End Sub
PORFAVOR HEEEEEEEEEEEEELP MEEEEEE :/
Valora esta pregunta


0