
12 Mai
2016
12 Mai
'16
13:20
Caros, bom dia, Estou com um problema de lógica de programação. O que eu esperava era o seguinte: se ts[j]>4, eu abro uma operação e ela só para quando ts[j]<4. Enquanto uma operação está aberta, não se pode abrir mais nenhuma. Para isso eu tentei fazer de duas formas, usando e não usando o while, mas eu não consegui. Alguém teria alguma idéia sobre o que eu ando pensando errado? Muito obrigada, Michelle Primeira opção: > v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2) > ts<-ts(v) > > for(j in 1:10){ + if(ts[j]>4){ + #vende + #compra + #compra + vc<-10*ts[j] + while(ts[j+1]>4) j=j+1 + for(k in j+1:10){ + if(ts[k]<4){ + vc2<-7*ts[k] + + } + } + } + else print("Não houve abertura de processo") + j=j+k + vc2 + vc + } [1] "Não houve abertura de processo" [1] "Não houve abertura de processo" [1] "Não houve abertura de processo" Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário > vc2 [1] 14 > > vc [1] 80 Segunda opção: > v<-c(1,2,5,4,8,9,10,4,2,7,6,8,2) > ts<-ts(v) > > for(j in 1:10){ + if(ts[j]>4){ + #vende + #compra + #compra + vc<-10*ts[j] + for(k in j+1:10){ + if(ts[k]<4){ + vc2<-7*ts[k] + + } + } + } + else print("Não houve abertura de processo") + j=j+k + vc2 + vc + } [1] "Não houve abertura de processo" [1] "Não houve abertura de processo" [1] "Não houve abertura de processo" Error in if (ts[k] < 4) { : valor ausente onde TRUE/FALSE necessário > vc2 [1] 14 > > vc [1] 80