Ajuda "number os lucas"

30 views
Skip to first unread message

Jefferson Costa

unread,
Jun 25, 2013, 9:47:57 AM6/25/13
to rack...@googlegroups.com
Olá,
Eu preciso calcular os números de lucas.
Comecei a mexer em Racket ontem.
Estou com esse código, mas ele não esta funcionando.
Alguém pode me ajudar?

#lang racket
(define L1 2)
(define L2 1)
(define Ln 3)

(define min 1)
(define max 10)

(displayln L1)
(displayln L2)

(for ([min max])
  (define Ln (+ L1 L2)) ;da problema nessa linha. Nao posso atribuir uma soma a Ln?
  (define L1 L2)
  (define L2 Ln)
  (displayln Ln)
)

Rodolfo Carvalho

unread,
Jun 25, 2013, 10:26:53 AM6/25/13
to rack...@googlegroups.com
Oi Jefferson,

Os seus "números de lucas" seriam a sequência de Fibonacci?
https://pt.wikipedia.org/wiki/N%C3%BAmero_de_Fibonacci

Tenho dois comentários pra tentar te ajudar sem dar uma solução pronta.

1. A linha do "for" não parece fazer sentido: min e max foram definidos, mas o que aquela sintaxe de "for" faz é variar "min" de 0 a "max".


2. Quando L1 é definido dentro do loop (define L1 ...), a linha que você apontou, a da soma, usa L1 e L2 que ainda não foram definidos (serão definidos nas linhas abaixo da soma), e aí mora o problema.

Não é o estilo de programação mais indicado em Racket, mas você pode mudar seus L1, L2, Ln usando "set!":


(for ([min max])
  (set! Ln (+ L1 L2)) ;da problema nessa linha. Nao posso atribuir uma soma a Ln?
  (set! L1 L2)
  (set! L2 Ln)
  (displayln Ln)
)


Se você estiver usando o DrRacket pra programar, passe o mouse sobre L1, L2, Ln pra ver onde está a definição de cada símbolo. Isso é útil na hora de entender o que está acontecendo.


Abraço,


Rodolfo Carvalho


2013/6/25 Jefferson Costa <jefferson....@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Racket Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para racket-br+...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Reply all
Reply to author
Forward
0 new messages