SE dentro do Outro

Off Topic

17/11/2014

Pessoal, podem me informar se meu exercicio está feito de forma correta, se existe outra forma de fazer? obrigado.


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

Gleyton Menezes

Curtidas 0

Melhor post

Soeuseijothaz

Soeuseijothaz

17/11/2014

O exemplo foi só para lhe passar uma ideia, então é passível de conter erros.
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
GOSTEI 1

Mais Respostas

Soeuseijothaz

Soeuseijothaz

17/11/2014

Sendo simplista, se o algorítimo der as respostas certar então ele pode ser considerado certo.
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
Gleyton Menezes

Gleyton Menezes

17/11/2014

Obrigado pelas explicações e detalhes, mas no Visualg não da erro quando colocamos a expressão "E"?
GOSTEI 0
Soeuseijothaz

Soeuseijothaz

17/11/2014

Obrigado pelas explicações e detalhes, mas no Visualg não da erro quando colocamos a expressão "E"?


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
Ronaldo Lanhellas

Ronaldo Lanhellas

17/11/2014

Pessoal, podem me informar se meu exercicio está feito de forma correta, se existe outra forma de fazer? obrigado.


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
Gleyton Menezes

Gleyton Menezes

17/11/2014

Deu erro no FIMSE.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

17/11/2014

O exemplo foi só para lhe passar uma ideia, então é passível de conter erros.
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
Gleyton Menezes

Gleyton Menezes

17/11/2014

Desculpa Sr´s, pensei que tinha testado, estarei vendo aqui o que posso fazer com o codigo que me passou.
GOSTEI 0
POSTAR