Jump to content
Sign in to follow this  
Maçãs

Scheme

Recommended Posts

Maçãs

Boas,

estou a fazer um trabalho para a faculdade em que o objectivo é ao introduzir p.ex. o nº 7 este devolve-nos o sétimo numero primo, mas o programa faz o contrário.

Já estou de volta disto à alguns dias e não consigo solucionar o problema!

(define (n-esimo-primo n)
  (define (proximo-primo p)
    (if(primo? p)
      p
      (proximo-primo (+ p 1))))
  (define (n-esimo-primo-aux n primo)
    (if(= (- n 1) 2)
        primo
        (n-esimo-primo-aux (- n 1) (+ primo 1))))
  (n-esimo-primo-aux n 0))

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

program flow :

- n-esimo-primo-aux 7(n) 0(primo)

- if(= (- n 1) 2)    // 6 != 2

- n-esimo-primo-aux (- n 1) (+ primo 1) // arg: 6(n) 1(primo)

- if(= (- n 1) 2)    // 5 != 2

- n-esimo-primo-aux (- n 1) (+ primo 1) // arg: 5(n) 2(primo)

- if(= (- n 1) 2)    // 4 != 2

- n-esimo-primo-aux (- n 1) (+ primo 1) // arg: 4(n) 3(primo)

- if(= (- n 1) 2)    // 3 != 2

- n-esimo-primo-aux (- n 1) (+ primo 1) // arg: 3(n) 4(primo)

- if(= (- n 1) 2)    // 2 == 2

- returno primo : 4

o problema está aqui:

(n-esimo-primo-aux (- n 1) (+ primo 1))

não deveria ser "+ primo 1" mas sim "proximo_primo primo"

ps : não faço ideia da sintaxe ..


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
danielcunha

ola

dada uma lista, tem que dar:

ex: (list 3 -5 66 -77 1.8) =>  (-3 5 -66 77 -1.8)

como podem ver é trocar os sinais da lista.

podem me ajudar como fazer isso em scheme?

Share this post


Link to post
Share on other sites
HappyHippyHippo

se eu soubesse scheme dizia-te como se faz isso recursivamente e 2 tempos ...

sei que linguagens deste nivel da para fazer este tipo de coisas

exemplo

inverter (lista)

    se tamanho(lista) igual a 0

        []

    caso contrário

        concatenar (* lista[0] (-1)) (inverter resto_da_lista)


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.