A questão da chave errada pode ser identificada usando um editor de texto como o notepad++ por exemplo, basta selecionar o R como linguagem de formatação. Além disso, identar de outra forma ajuda a perceber melhor os fechamentos de chaves e as relações entre os ifs.
Além da chave tem um pequeno erro na lógica do isósceles, veja exemplo. tri <- function(x,y,z){ if ((x + y) > z & (x + z) > y & (y + z) > x){ if ((x==y) | (x==z))return ("equilátero") ##todos os lados iguais else if ((x == y) | (x == z) | (y == z)){ ## ao menos dois lados iguais return ("isosceles")} else{ return ("escaleno")} } else{ return ("não é triângulo")} } > tri(4,4,4) [1] "equilátero" > tri(5,4,4) [1] "isosceles" > tri(4,5,4) [1] "equilátero" > tri(4,4,5) [1] "equilátero" > tri(3,4,5) [1] "escaleno" ## versão corrigida. tri <- function(x,y,z){ if ((x + y) > z & (x + z) > y & (y + z) > x){ if ((x==y) & (x==z))return ("equilátero") ##todos os lados iguais else if ((x == y) | (x == z) | (y == z)){ ## ao menos dois lados iguais return ("isosceles")} else{ return ("escaleno")} } else{ return ("não é triângulo")} } > tri(4,4,4) [1] "equilátero" > tri(5,4,4) [1] "isosceles" > tri(4,5,4) [1] "isosceles" > tri(4,4,5) [1] "isosceles" > tri(3,4,5) [1] "escaleno" Em 25 de abril de 2013 18:24, Sérgio Henrique almeida da silva ju < sergio.edfis...@gmail.com> escreveu: > É verdade, que falta de atenção! > > Mas tem uma chave errada nessa função, não estou identificando qual! > > Obrigado > > > Em 25 de abril de 2013 18:13, Daniel C Bezerra > <danielcbeze...@gmail.com>escreveu: > > Vc usou apenas um sinal de "=" após o else >> On Apr 25, 2013 5:57 PM, "Sérgio Henrique almeida da silva ju" < >> sergio.edfis...@gmail.com> wrote: >> >>> Prezados >>> >>> Estou fazendo uma função no R que dado os três lados de um triângulo ele >>> me diz se é um triângulo, se o mesmo é isósceles, escaleno ou equilátero. >>> >>> tri <- function(x,y,z){ >>> if ((x +y > z) & (x + z > y) & (y + z > x)){ >>> if ((x==y) | (y==z)){return ("equilátero")} >>> else if ((x = y) | (x=z) | (y=z)){ >>> return ("isosceles")} >>> else{ >>> return ("escaleno")} >>> else{ >>> return ("não é triângulo")}} >>> >>> >>> Porém não estou tendo sucesso, onde posso estar errando? >>> >>> Abraços >>> >>> >>> -- >>> Sérgio Henrique Almeida da Silva Junior >>> Doutorando em Epidemiologia em Saúde Pública >>> Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ >>> http://lattes.cnpq.br/1611345552843383 >>> Tel: (21) 68463637 / 94429486 >>> >>> _______________________________________________ >>> R-br mailing list >>> R-br@listas.c3sl.ufpr.br >>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >>> código mínimo reproduzível. >>> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > > > -- > Sérgio Henrique Almeida da Silva Junior > Doutorando em Epidemiologia em Saúde Pública > Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ > http://lattes.cnpq.br/1611345552843383 > Tel: (21) 68463637 / 94429486 > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.