Scheme

= é para números. Usa o equal? ;)
edit - talvez a resposta do AliFromCairo fique melhor, não sei, mas sei que pelo menos o equal? funciona :P
 
Desde ja muito obrigado as pessoas que me ajudarem. Desculpem se estou a abusar, mas poderiam me ajudar aqui num exercicio, é o ultimo que me falta fazer.
Tenho de construir uma matriz(c) que devolve uma matriz de dimensao 12 * 12 ( que so pode ter inteiros entre 2 e 6) em que todas as posicoes da matriz começam com o valor c.
Obrigado!
 
Última edição:
Eu também tenho de fazer uma matriz para o meu projecto de Programação, e aquilo em que estou a pensar é a fazer uma lista de listas, sendo que o nº de listas dentro da principal será igual ao nº de elementos dentro de cada lista, e este valor é n, pelo que a matriz é de n*n. No teu caso, n=12.

Fiz-me entender? :P
 
Eu também tenho de fazer uma matriz para o meu projecto de Programação, e aquilo em que estou a pensar é a fazer uma lista de listas, sendo que o nº de listas dentro da principal será igual ao nº de elementos dentro de cada lista, e este valor é n, pelo que a matriz é de n*n. No teu caso, n=12.

Fiz-me entender? :P

Antes de mais obrigado por teres respondido. Eu tb estou a fazer assim..a minha duvida é como é que fica a matriz depois de representada no scheme quando fazes a intereccao, é que quando eu faço uma lista de listas fica algo do genero ((2 (2 (2 (2 (2 (2 (2 (2 (2 (2 (2 (2)))))))))))) o que nao se parece mt com uma matriz. Ou seja a minha duvida é quando meto por exemplo (matriz 2 ) na janela de interaccoes, qual o aspecto da matriz que deve aparecer
 
Não fiques à espera que te surja uma matriz. O resultado disso será algo como
Código:
((1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0))

No entanto, o Scheme deve-te mostrar algo assim:
Código:
((1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0))

Primeiro, crias uma lista. Essa lista representa as linhas, e cada elemento dessa lista é outra lista. Cada uma dessas listas é A linha, sendo composta por vários elementos que serão as colunas.
Acho que não consigo explicar melhor do que o primeiro exemplo deste post :P
 
Não fiques à espera que te surja uma matriz. O resultado disso será algo como
Código:
((1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0)
 (1 2 3 4 5 6 7 8 9 0))

No entanto, o Scheme deve-te mostrar algo assim:
Código:
((1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0)(1 2 3 4 5 6 7 8 9 0))

Primeiro, crias uma lista. Essa lista representa as linhas, e cada elemento dessa lista é outra lista. Cada uma dessas listas é A linha, sendo composta por vários elementos que serão as colunas.
Acho que não consigo explicar melhor do que o primeiro exemplo deste post :P

Obrigado , ja fiz isso, mas olha uma ultima duvida, se o meu c é 2, qual é o valor das restantes entradas da matriz? é tudo 2?(acho que nao..)
tipo matriz (2) da me o que? ( 2 0 1 3 4 5 6 7 8 9) ?
 
Tu é que sabes. Lê bem o enunciado daquilo que tens de fazer que a resposta há-de estar lá ;)
Se achares que o enunciado deixa margem para dúvidas, coloca-o também (sem esquecer que aqui ninguém dá trabalhos feitos).

btw, não apagues os teus posts depois de teres as dúvidas esclarecidas, sff. O tópico fica completamente incoerente, e a tendência não é recuperar os teus como eu tive de fazer, mas sim apagar as respostas, e quem acaba por ficar mal és tu ;)
 
Tu é que sabes. Lê bem o enunciado daquilo que tens de fazer que a resposta há-de estar lá ;)
Se achares que o enunciado deixa margem para dúvidas, coloca-o também (sem esquecer que aqui ninguém dá trabalhos feitos).

btw, não apagues os teus posts depois de teres as dúvidas esclarecidas, sff. O tópico fica completamente incoerente, e a tendência não é recuperar os teus como eu tive de fazer, mas sim apagar as respostas, e quem acaba por ficar mal és tu ;)

Muito obrigado pela ajuda, ja acabei a matriz. Agora tenho de criar um procedimento que retira o elemento de uma posição da matriz(por exemplo a posicao ( 2 ,3 ) ) e substitui por 5. Podes me dar uma dica de como isto se faz?.. se nao te importares, é que tou um pouco confuso..
 
Se tens uma lista de listas, onde cada uma dessas listas corresponde a uma linha da matriz, então só tens de fazer uma matriz nova, iterar as listas até chegar aquela que te interessa (chegaste à linha certa), e, aí, iteras as colunas até a que te interessa; à medida que vais "andando" vais metendo os dados na nova matriz, e quando chegares à posição que te interessa, em vez de passares o conteúdo da matriz1 para a nova, passas o novo conteúdo.
Não é fácil, mesmo.

Já agora, assim só por acaso, estás em Engª Informática no IST? É que estás praticamente a ditar o enunciado da primeira parte do meu projecto ;)
 
Se tens uma lista de listas, onde cada uma dessas listas corresponde a uma linha da matriz, então só tens de fazer uma matriz nova, iterar as listas até chegar aquela que te interessa (chegaste à linha certa), e, aí, iteras as colunas até a que te interessa; à medida que vais "andando" vais metendo os dados na nova matriz, e quando chegares à posição que te interessa, em vez de passares o conteúdo da matriz1 para a nova, passas o novo conteúdo.
Não é fácil, mesmo.

Já agora, assim só por acaso, estás em Engª Informática no IST? É que estás praticamente a ditar o enunciado da primeira parte do meu projecto ;)
Lol..não, o meu irmão é que anda em redes lá, ainda estou no 11º ano, mas gosto muito de programação, estou a pensar em entrar no ist daqui a dois anos, mas dizem que aquilo é mt dificil..
 
e depois????


já agora tenho uma dúvida... nao sei como por este procedimento a começar.
é um procedimento que pela primeira vez que é invocado tem que dar um e da proxima vez tem que dar 0 e depois 1 e assim sucessivamente, só k nao sei como começar???

Código:
(define (bin)
  (bin-aux n))

(define (bin-aux n)
  (or (cond ((= n (or 1
                      n)) (and 1
                          (set! n 0))))
      (cond ((= n 0) (and 0
                          (set! n 1))))))
 
Ui, que confusão...
Isto não chega?
Código:
(define n 0)
(define (bin)
  (if (zero? n)
      (set! n 1)
      (set! n 0))
  n)
 
Última edição:
Deverá ser mais simples utilizando vectores, mas no caso de também estares a fazer o projecto de FP no IST não se pode usar vectores, ou seja têm que ser com listas.


Tou no IST do Tagus, isso esta no enunciado? Acho que no enunciado nao esta nada sobre isso...
 
Última edição:
Tou no IST do Tagus, isso esta no enunciado? Acho que no enunciado nao esta nada sobre isso...

No enunciado não está, mas foi-nos dito explicitamente para apenas usar-mos aquilo que foi dado até à data da saída do enunciado, na qual ainda não tinha-mos dado vectores. Agora no Tagus não sei se funciona de igual forma.
 
Back
Topo