| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 07:12:55
|
adriascacibas
Entusiasta Java
Membro desde: 27/01/2009 10:00:56
Mensagens: 20
Offline
|
Bom dia,
Galera, Estou estudando pela apostila da Caelum e tem um exercício que é pra fazer uma conta fatorial de 1 à 10.
Eu fiz este exercício mas não se se está da maneira correta de fazer.
Mas os resultados em si, estão todos OK. (Conferir na calculadora ).
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 07:41:40
|
davidtiagoconceicao
Virtual Machine Man
![[Avatar]](/images/avatar/32fb0afb79c483a66f39391a80354f8c.png)
Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline
|
Acredito que está correto sim (ainda mais se você conferiu na calculadora hehe).
Mas tem o detalhe de está não ser a forma mais indicada para programar. Usar todas as instruções dentro da expressão de repetição ( no caso um for) funciona, porém deixa o código bastante difícil de ler e interpretar. Sugiro que você separe estas instruções em linhas dentro do for (o que for possível separar) e, se achar interessante, adicione alguns comentários.
Não vou te entregar o código feito, pra não dar de graça também né?!
EDIT: Se tiver alguma dúvida depois do refactor do código, poste aí que verificamos.
This message was edited 1 time. Last update was at 23/02/2009 07:45:42
|
Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 08:12:49
|
adriascacibas
Entusiasta Java
Membro desde: 27/01/2009 10:00:56
Mensagens: 20
Offline
|
Post 23/02/2009 07:41:40 Assunto: Re:Exercício Fatorial.
Acredito que está correto sim (ainda mais se você conferiu na calculadora hehe).
Mas tem o detalhe de está não ser a forma mais indicada para programar. Usar todas as instruções dentro da expressão de repetição ( no caso um for) funciona, porém deixa o código bastante difícil de ler e interpretar. Sugiro que você separe estas instruções em linhas dentro do for (o que for possível separar) e, se achar interessante, adicione alguns comentários.
Não vou te entregar o código feito, pra não dar de graça também né?!
EDIT: Se tiver alguma dúvida depois do refactor do código, poste aí que verificamos.
David,
Tentei da uma arrumada.
Analisa por favor.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 08:46:45
|
davidtiagoconceicao
Virtual Machine Man
![[Avatar]](/images/avatar/32fb0afb79c483a66f39391a80354f8c.png)
Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline
|
Não era bem isso que eu estava pensando. Não sei se me expressei mal ou o que, mas vou tentar ser mais claro desta vez.
Vamos analisar a sintaxe e a semântica do comando for:
Agora vamos ver seu código:
Análogamente:
<inicialização> = n = 1, fatorial = 1 : Está ok, porém se as variáveis n e fatorial são usadas exclusivamente no for, elas poderiam ser declaradas aqui, evitando disperdício de memória caso houvessem mais linhas após o for.
<condição> = n <= 10 : Está ok, sem problema algum.
<expressão de iteração> = n++, fatorial = fatorial * n : Aqui que "mora o perigo", a instrução "n++" pode ser colocada aqui sem problema algum, já que ela que faz com que o loop "avance" e a variável n faz parte da condição de repetição. A instrução "fatorial = fatorial * n", porém, faz parte da solução do problema e não tem ligação com a condição da iteração (como se fizesse parte das tão faladas regras de negócio). Assim, o mais indicado é mover esta instrução para dentro do for (dentro do bloco), mais ou menos assim:
Desta forma, ocorre a separação entre o que define a repetição e o que exatamente ela faz. Repare também que a declaração das variáves n e fatorial agora ocorre dentro do for.
Desculpe se estou sendo chato ou coisa assim. Minha intenção apenas é que você escreva códigos com mais clareza e legibilidade. Nesta situação de cálculo de fatorial, o programa é bastante simples e a iteração também, porém é bom que você se acostume com as boas práticas desde o princípio, para que no futuro não saia escrevendo iterações deste tipo:
Este é um exagero, porém pode acontecer de uma iteração que seja clara para você pareça uma sopa de letrinhas para outro programador, ou para você mesmo quando precisar mexer na rotina que escreveu anos atrás.
Já que estamos falando em formatação de código, preste atenção também às chaves e à identação.
Seu código:
O padrão Java:
Espero ter sido claro.
Dúvidas ou críticas, poste aí!
This message was edited 2 times. Last update was at 23/02/2009 08:48:56
|
Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 08:54:00
|
adriascacibas
Entusiasta Java
Membro desde: 27/01/2009 10:00:56
Mensagens: 20
Offline
|
Obrigado David.
Eu Entendi todos os pontos citados.
Vou praticar mais e fazer novos exercícios, espero quem na proxima vez você me ajude deste jeito
Obrigado.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 08:58:02
|
davidtiagoconceicao
Virtual Machine Man
![[Avatar]](/images/avatar/32fb0afb79c483a66f39391a80354f8c.png)
Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline
|
Opa, com certeza alguém do GUJ vai te ajudar nestes casos de dúvidas.
Só não podemos fazer o exercício inteiro né?!
Valeu!
|
Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 09:31:54
|
Jesuino Master
GUJ Ranger
![[Avatar]](/images/avatar/a5218f5fe0d71d13cc6a092c36a73e08.png)
Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline
|
Desculpem entrar de penetra aqui, mas não pude resistir a mostra a solução recursiva, que é linda
Hehehe, foi mal, não resisti. Só peço que se isso for exercicio de alguém, por favor tentem entender antes de entregar, senão jamais me perdoarei hehehehe.
|
William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/02/2009 10:01:50
|
davidtiagoconceicao
Virtual Machine Man
![[Avatar]](/images/avatar/32fb0afb79c483a66f39391a80354f8c.png)
Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline
|
A solução usando recursão é realmente bem interessante. Pena que é mais pesada nas arquiteturas tradicionais...
|
Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/02/2009 15:03:16
|
maddoliveira
What is classpath?
![[Avatar]](/images/avatar/c6dd2443a09c8fc27229268a32efb706.png)
Membro desde: 24/02/2009 14:54:00
Mensagens: 5
Localização: Campo Grande(MS)
Offline
|
adriascacibas wrote:Galera, Estou estudando pela apostila da Caelum e tem um exercício que é pra fazer uma conta fatorial de 1 à 10.[/code]
Olá, você fez só o download da apostila da Caelum ou participou do curso FJ-11?
Abraços
This message was edited 1 time. Last update was at 24/02/2009 15:04:16
|
Marco Aurélio Dias de Oliveira - Maddo
+ Analista de Sistemas de Informação - Unifisco/SGI - MS
+ Certified ScrumMaster
+ http://www.scrumalliance.org/profiles/43431-marco-aurelio-dias-de-oliveira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/02/2009 06:06:09
|
adriascacibas
Entusiasta Java
Membro desde: 27/01/2009 10:00:56
Mensagens: 20
Offline
|
Olá, você fez só o download da apostila da Caelum ou participou do curso FJ-11?
Só fiz o download mesmo.
Abraços
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/02/2009 14:36:01
|
maddoliveira
What is classpath?
![[Avatar]](/images/avatar/c6dd2443a09c8fc27229268a32efb706.png)
Membro desde: 24/02/2009 14:54:00
Mensagens: 5
Localização: Campo Grande(MS)
Offline
|
Eu fiz o treinamento na Caelum, participei dos cursos FJ-11 e FJ-21.
Caso você continue praticando e tenha alguma dúvida, pode contar comigo para ajudá-lo.
Ajudo sem problemas, só não passo os exercícios mastigados, daí não tem a menor graça!
Abraços,
Maddo
This message was edited 2 times. Last update was at 25/02/2009 17:35:55
|
Marco Aurélio Dias de Oliveira - Maddo
+ Analista de Sistemas de Informação - Unifisco/SGI - MS
+ Certified ScrumMaster
+ http://www.scrumalliance.org/profiles/43431-marco-aurelio-dias-de-oliveira |
|
|
 |
|
|