[R-br] Uso de if() sentro do while.

Michelle Bau Graczyk mbgraczyk em gmail.com
Sexta Maio 13 16:55:28 BRT 2016


Caros, boa tarde,

Eu estou tentando montar um programa de troca de calor com um reservatório.
Dentro de uma janela de tempo de 63 minutos, se uma dada combinação é maior
ou igual a 3, então o reservatório é aberto e recebe uma quantidade de
calor. Ele é fechado se essa combinação atinge 0.5, ou se ela atinge um
valor que é igual a de abertura mais 2, ou se atinge o limite de tempo, 63
minutos.

Como é possível ver abaixo, a operação fecha duas vezes, abre e fecha no
mesmo instante( então ele não esta mudando o j para que feche com o valor
de abertura +2) e ainda está usando o tempo limite sem precisar.

O resultado era para ser uma abertura no instante 17, um encerramento no
44, uma abertura no instante 45 e um encerramento por tempo no instante 63
já que ele não atinge 6.0176641+2 ou 0.5).

Eu sei que que o erro está nas posições dos laços mas já mexi de várias
formas e nada. Alguém saberia me dizer onde estou errando?

Muito obrigada,

Michelle

 vF18
 [1] -0.3121193 -0.3121193 -0.3121193 -0.3121193 -2.0091919 -0.3121193
-0.3121193 -0.3121193
 [9] -0.3121193 -0.3121193 -0.3121193 -0.3121193 -0.3121193 -0.3121193
-2.0091919  1.0156736
[17]  3.6570085  1.0599739  1.0599739  1.0599739  3.7013087  3.7013087
 4.1291396  1.5321050
[25]  2.4320670  1.5321050  1.5321050  2.9041981  2.4763673  3.8041601
 3.3763293  3.3763293
[33]  3.8484604  5.5455330  2.9484984  3.8484604  3.8484604  3.8484604
 4.3205915  2.6235189
[41]  3.8927606  1.2957260  3.4206295  8.6146987  6.0176641  6.4454950
 6.4454950  9.0425296
[49]  6.4454950  6.4454950  4.3205915  4.3205915  4.3205915  3.4649298
 3.8927606  3.8927606
[57]  3.8927606  3.8927606  3.8927606  3.8927606  3.8927606  3.8927606
 3.8927606
> matrizzF18<-matrix(NA,n,2)
> colnames(matrizzF18)<-c("Abre F18","Fecha F18")
> j <- 1
>
> while (j <= n) {
+ k<-1
+
+   if(abs(vF18[j])>=3 && j<63){
+     abre_F18<-5*s.F18[j]-round(c18_17)*5*s.F17[j]-round(c18_19)*5*s.F19[j]
+     matrizzF18[j,1]<-abre_F18
+     while (abs(vF18[j + k])>0.5 && j+k<63) {
+
+       if(abs(vF18[j + k])>abs(vF18[j])+2){
+
fecha_F18<--5*s.F18[j+k]+round(c18_17)*5*s.F17[j+k]+round(c18_19)*5*s.F19[j+k]
+         matrizzF18[j + k,2]<-fecha_F18
+
+       k<-k+1
+       break
+       }
+       else k <- k + 1 }
+
+
fecha_F18<--5*s.F18[j+k]+round(c18_17)*5*s.F17[j+k]+round(c18_19)*5*s.F19[j+k]
+     matrizzF18[j + k,2]<-fecha_F18
+   }
+
+   j=j+k
+ }
> print(matrizzF18)
      Abre F18 Fecha F18
 [1,]       NA        NA
 [2,]       NA        NA
 [3,]       NA        NA
 [4,]       NA        NA
 [5,]       NA        NA
 [6,]       NA        NA
 [7,]       NA        NA
 [8,]       NA        NA
 [9,]       NA        NA
[10,]       NA        NA
[11,]       NA        NA
[12,]       NA        NA
[13,]       NA        NA
[14,]       NA        NA
[15,]       NA        NA
[16,]       NA        NA
[17,]      0.4        NA
[18,]       NA        NA
[19,]       NA        NA
[20,]       NA        NA
[21,]       NA        NA
[22,]       NA        NA
[23,]       NA        NA
[24,]       NA        NA
[25,]       NA        NA
[26,]       NA        NA
[27,]       NA        NA
[28,]       NA        NA
[29,]       NA        NA
[30,]       NA        NA
[31,]       NA        NA
[32,]       NA        NA
[33,]       NA        NA
[34,]       NA        NA
[35,]       NA        NA
[36,]       NA        NA
[37,]       NA        NA
[38,]       NA        NA
[39,]       NA        NA
[40,]       NA        NA
[41,]       NA        NA
[42,]       NA        NA
[43,]       NA        NA
[44,]       NA     -0.45
[45,]      0.4     -0.40
[46,]       NA        NA
[47,]       NA        NA
[48,]       NA     -0.45
[49,]      0.4     -0.40
[50,]       NA        NA
[51,]       NA        NA
[52,]       NA        NA
[53,]       NA        NA
[54,]       NA        NA
[55,]       NA        NA
[56,]       NA        NA
[57,]       NA        NA
[58,]       NA        NA
[59,]       NA        NA
[60,]       NA        NA
[61,]       NA        NA
[62,]       NA        NA
[63,]       NA     -0.35
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160513/4c588ce2/attachment.html>


Mais detalhes sobre a lista de discussão R-br