
27 Fev
2012
27 Fev
'12
00:07
Estava rodando os scripts e vi que o stopifnot(x>=0) se retirado não altera nada. No caso iterativo do factorial não funciona se fizer factorial(0)=0, como forçar para factorial(0)=1? f2 <- function(x){ stopifnot(x>=0) if(x<=1){ 1 }else{ x*f2(x-1) } } 2012/2/26 Mauricio Cardeal <mcardeal2010@gmail.com>: > Benilton, por curiosidade testei os códigos e o primeiro funcionou certo, > mas o segundo acusou erro: > >> factorial = function(x){ > + stopifnot(x>=0) > + produto=1 > + for (i in 1:x) produto = i* produto > + produto > + } >> factorial(3) > [1] 6 >> f2 = function(x){ > + stopifnot(x>=0) > + If(x<=1){ > Erro: '{' inesperado em: > " stopifnot(x>=0) > If(x<=1){" >> 1 > [1] 1 >> }else{ > Erro: '}' inesperado em " }" >> x*f2(x-1) > Erro: objeto 'x' não encontrado >> } > Erro: '}' inesperado em " }" >> } > Erro: '}' inesperado em "}" >> > > Mauricio Cardeal > > UFBA >