Fórum SE dentro do Outro #501434
17/11/2014
0
algoritmo "Saber se é: criança, adolescente, adulto ou idoso"
// Função :
// Autor :
// Data : 17/11/2014
// Seção de Declarações
var
IDADE: INTEIRO
inicio
// Seção de Comandos
escreval("INFORME SUA IDADE")
LEIA(IDADE)
SE (IDADE < 20) ENTAO
SE (IDADE < 15) ENTAO
ESCREVA("VOCE É UMA CRIANÇA")
SENAO
ESCREVA("VOCÊ É ADOLESCENTE")
FIMSE;
SENAO
SE(IDADE < 50) ENTAO
ESCREVA("VOCE É ADULTO")
SENAO
ESCREVA("VOCÊ É IDOSO")
FIMSE
FIMSE
fimalgoritmo
Gleyton Menezes
Curtir tópico
+ 0Post mais votado
17/11/2014
Quando alguém responde num fórum nem sempre é a resposta definitiva, mas sim um norte a seguir.
A capacidade de seguir e adaptar as sugestões é que vai contribuir para o aprendizado.
Tenta assim:
SE (IDADE < 15) ENTAO
ESCREVA("VOCE É UMA CRIANÇA")
SENAO
SE ((IDADE > 15) E (IDADE < 20)) ENTAO
ESCREVA("VOCÊ É ADOLESCENTE")
SENAO
SE ((IDADE > 20) E (IDADE < 50)) ENTAO
ESCREVA("VOCE É ADULTO")
SENAO
ESCREVA("VOCÊ É IDOSO")
FIMSE
FIMSE
FIMSE
Soeuseijothaz
Gostei + 1
Mais Posts
17/11/2014
Soeuseijothaz
Então a primeira coisa a fazer é testá-lo e ver se em todas as condições vai retorna o valor esperado.
O seu pelo que testei aqui esta retornando o esperado.
Agora vale como dica, mesmo funcionando pode ser que a lógica utilizada esteja complexa ou confusa o que pode afetar a performance e principalmente a manutenção.
Então a regra é tentar ser sempre o mais claro e simples possível.
A programação é interessante porque sempre há várias soluções para um mesmo problema.
Outra forma de escrever o mesmo algorítimo seria:
SE (IDADE < 15) ENTAO
ESCREVA("VOCE É UMA CRIANÇA")
SENAO
SE ((IDADE > 15) E (IDADE < 20)) ENTAO
ESCREVA("VOCÊ É ADOLESCENTE")
FIMSE;
SENAO
SE ((IDADE > 20) E (IDADE < 50)) ENTAO
ESCREVA("VOCE É ADULTO")
SENAO
ESCREVA("VOCÊ É IDOSO")
FIMSE
FIMSE
FIMSE
Não quero dizer que a solução acima seja melhor ou pior, que a proposta originalmente é só outra forma implementar.
Qual a melhor abordagem?
Fica a gosto do freguês!
Gostei + 0
17/11/2014
Gleyton Menezes
Gostei + 0
17/11/2014
Soeuseijothaz
Olha a muitos anos que não uso o Visualg. Faça um teste, pois não o tenho instalado aqui.
O melhor conselho que posso lhe dar é usar a teoria suína: é "fuçando(testando)" que se aprende.
E para mais informações pesquise no google "Visualg usando operadores logicos e ou" acredito que cai ajudar muito.
Gostei + 0
17/11/2014
Ronaldo Lanhellas
algoritmo "Saber se é: criança, adolescente, adulto ou idoso"
// Função :
// Autor :
// Data : 17/11/2014
// Seção de Declarações
var
IDADE: INTEIRO
inicio
// Seção de Comandos
escreval("INFORME SUA IDADE")
LEIA(IDADE)
SE (IDADE < 20) ENTAO
SE (IDADE < 15) ENTAO
ESCREVA("VOCE É UMA CRIANÇA")
SENAO
ESCREVA("VOCÊ É ADOLESCENTE")
FIMSE;
SENAO
SE(IDADE < 50) ENTAO
ESCREVA("VOCE É ADULTO")
SENAO
ESCREVA("VOCÊ É IDOSO")
FIMSE
FIMSE
fimalgoritmo
Sua lógica está certa. Afinal cada uma pensa de um jeito diferente, mas eu faria algo como:
Se entre 10 e 20 entao 'adolescente' Senao se entre 21 e 40 entao 'adulto' .. e etc
Gostei + 0
17/11/2014
Gleyton Menezes
Gostei + 0
17/11/2014
Ronaldo Lanhellas
Quando alguém responde num fórum nem sempre é a resposta definitiva, mas sim um norte a seguir.
A capacidade de seguir e adaptar as sugestões é que vai contribuir para o aprendizado.
Tenta assim:
SE (IDADE < 15) ENTAO
ESCREVA("VOCE É UMA CRIANÇA")
SENAO
SE ((IDADE > 15) E (IDADE < 20)) ENTAO
ESCREVA("VOCÊ É ADOLESCENTE")
SENAO
SE ((IDADE > 20) E (IDADE < 50)) ENTAO
ESCREVA("VOCE É ADULTO")
SENAO
ESCREVA("VOCÊ É IDOSO")
FIMSE
FIMSE
FIMSE
Isso mesmo. Eu, por exemplo, não tenho o VisualG para fazer o teste do seu algoritmo, pois a sintaxe na verdade é você quem deve corrigir, o objetivo aqui é mostrar a semântica do problema.
Gostei + 1
17/11/2014
Gleyton Menezes
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)