Lista 2 LISP (turma A)
Instruções
A lista devera ser entregue em um diskette com o seu RA. Todas as
questoes da lista devem estar no arquivo lista2.lsp. Cada
questão pede para voce definir uma função, defina-a com o nome
pedido pois a correção será automatica. Voce pode definir suas
funcoes auxiliares no arquivo.
Esta lista deverá ser entregue no dia 6/4. As questões marcadas
com ** não precisam estar 100% certas para a lista valer.
Questões
- Suponha que voce tem uma lista da forma
( ( aluno1 aluno2 ...) ((nota1-1 nota1-2 nota1-3)
(nota2-1 nota2-2 nota2-3) ...))
onde aluno1 é um string com o nome do aluno, e nota1-1, nota1-2 e
nota1-3 são as notas de LISP, Prolog e Java do aluno neste
curso. Na media final, Java conta com peso 2.
Escreva a funcao L2-1 que dado umalista acima imprime o Nome e nota
final dos alunos que tiraram mais que 5.
- Escreva a funcao L2-2 que dado uma lista de atomos, retorna uma
lista de pares onde o primeiro elemento é um atomo da lista
original, e o segundo é a quantidade de vezes que ele
aparece. O programa deve percorrer a lista original apenas uma
vez (suponha que ela tem varios milhares de atomos)
Ex: (l2-2 '(a b a d a b b a d d b a ) retorna
((a 5) (b 4) (d 3))
- Um DAG é representado por uma lista ( (a b) (a d) (b f)
...) onde (a b) representa que existem um arco de a
para b. Escreva a funcao L2-3 que dado uma lista
acima retorna a lista dos sorvedouros deste DAG, isto é os
vertices que nao tem arcos saindo deles. Pense em usar uma
Hash table para representar o grafo.
- Escreva a funcao L2-4 que recebe duas matrizes, verifica se é
possivel multiplica-las, e se possivel retorna o produto
delas, senao retorna nil.
- É so isso , não pensei em nenhuma outra questao.