[R-br] Ajuda em função
Sérgio Henrique almeida da silva ju
sergio.edfisica em gmail.com
Quinta Abril 25 20:11:24 BRT 2013
Perfeito Gledson!
Obrigado
Em 25 de abril de 2013 19:03, gledson picharski <gledson.picharski em gmail.com
> escreveu:
> 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.edfisica em 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 <danielcbezerra em 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.edfisica em 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 em 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 em 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 em 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 em 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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130425/e157c19e/attachment-0001.html>
Mais detalhes sobre a lista de discussão R-br