Fundamentos da Programaç˜ao de Computadores

Transcrição

Fundamentos da Programaç˜ao de Computadores
Universidade do Minho
Escola de Engenharia
Departamento de Sistemas de Informação
Fundamentos
da
Programação de Computadores
Licenciatura em Tecnologias e Sistemas de Informação
1º Ano — 1º Semestre
Ano Lectivo 2008/2009
— Projecto 08 —
Data de Lançamento: 24 de Novembro de 2008
Data Limite de Entrega: 1 de Dezembro de 2008 (12:00)
Prof. Filipe de Sá-Soares
Novembro de 2008
Observações
ˆ A resolução do Projecto pode ser efectuada individualmente ou em grupo. No caso
de resolução por grupo, os grupos de trabalho devem ser compostos por dois elementos. Adicionalmente, estabelece-se que os grupos sejam formados por elementos
pertencentes ao mesmo turno PL.
ˆ Por norma, a resolução do Projecto deve ser auto-contida, ou seja, os alunos não
devem colaborar uns com os outros na resolução dos problemas propostos, excepto
no caso da resolução em grupo, em que os alunos que formam o grupo colaboram entre
si na resolução do projecto. Se, a tı́tulo excepcional, ocorrerem colaborações com
outros alunos para a resolução dos problemas propostos, tal deve ser explicitamente
indicado nos resultados submetidos (ver ponto adiante).
ˆ A submissão dos resultados alcançados na resolução do Projecto deve ser realizada
via moodle, até à data e hora indicadas anteriormente. Cada aluno deverá submeter
o seu trabalho, quer o mesmo tenha sido elaborado individualmente quer em grupo.
Não serão aceites submissões para além dessa data/hora.
ˆ Os resultados a submeter devem constar de um ficheiro em formato PDF.
O nome do ficheiro deve ser composto pelos seguintes campos: identificação do projecto (na forma “Pii”, em que “ii” é o número do projecto), caracter lowline, números
de aluno dos seus autores, separados por lowline, e extensão .pdf. Para o caso de
projectos resolvidos de forma individual, apenas deverá ser indicado um número de
aluno (correspondente ao aluno que o resolveu).
O corpo desse ficheiro principiará com a identificação do projecto, seguindo-se a indicação do(s) número(s) e nome(s) do(s) aluno(s) que resolveu(ram) os problemas
propostos e de eventuais colaborações (números e nomes). Depois, deverão surgir as
respostas aos problemas propostos, com a devida sinalização da questão a que se
refere cada resposta, e sem alteração de ordem (caso não responda a uma questão,
não deixe de sinalizar a identificação dessa questão, apesar de não fornecer resposta).
Seguidamente, dá-se um exemplo do inı́cio de um desses ficheiros, cuja designação
deveria ser P01 12345 12346.pdf. Note que nesse exemplo, não foi dada resposta à
questão A.1.ii e não existiram colaborações extra-grupo.
Projecto 01
Autores
12345 - Filipe de Sá-Soares
12346 - Miguel Abrunhosa de Brito
Colaboraç~
oes
sem colaboraç~
oes
A.1.i - 25
A.1.ii A.1.iii - erro
..
.
2
Questões
A. Modelo de Ambiente
1. No âmbito do Modelo de Ambiente, defina binding, frame e environment.
2. Enuncie as linhas orientadoras da avaliação no Modelo de Ambiente.
3. Distinga a conceptualização de variável, procedimento e expressão no Modelo
de Substituição e no Modelo de Ambiente.
4. Indique o nome das cinco regras que regem a avaliação de expressões no Modelo
de Ambiente e aponte a utilidade de cada uma dessas regras.
5. Enuncie cada uma das regras cujo nome indicou na questão anterior.
B. Avaliação de Expressões segundo o Modelo de Ambiente
Considere a seguinte configuração de ambiente:
GE
x : 20
z : 9
dobro:
parâmetros : x
corpo : (+ x x)
E2
y : 5
E1
x : 10
Avalie as expressões seguintes, indicando as regras de avaliação que aplicou, desenhando as alterações que resultam sobre a configuração anterior e indicando o valor
de cada uma das expressões. Assuma que as expressões são avaliadas sequencialmente, pela ordem apresentada.
1. x|E1
2. x|E2
3. x|GE
4. y|E1
5. y|E2
6. y|GE
7. z|E1
3
8. z|E2
9. z|GE
10. (define y 4)|E1
11. (define y 7)|E2
12. (set! y 9)|E1
13. (set! z 0)|E2
14. (set! y (+ z 2))|GE
15. (define cubo (lambda (x) (∗ x x x)))|E2
16. (cubo 2)|E2
17. (cubo y)|E2
18. (cubo x)|E1
19. (cubo x)|GE
20. (define (dobro x) (+ x x))|E1
21. (dobro y)|E2
22. (dobro y)|E1
23. (dobro z)|E2
24. (define somador (lambda (x) (lambda (y) (+ x y))))|E1
25. (define s (somador 0))|E1
26. (s 3)|E1
27. (s 2)|E2
28. (s x)|E1
29. (s z)|E1
Prova de Avaliação Experimental
ˆ Para os alunos avaliados segundo o perfil P1 ou segundo o perfil P2, a prova de
avaliação experimental do presente projecto decorrerá na semana que se inicia a 1 de
Dezembro de 2008, tendo lugar na sessão PL em que o aluno se encontrar inscrito.
ˆ A realização da prova de avaliação experimental deverá ser efectuada com recurso
ao moodle, pelo que cada aluno deve garantir previamente o correcto acesso à sua
conta na comunidade moodle FPC, sob pena de não poder realizar a prova.
ˆ Quando se apresentarem à prova de avaliação experimental, os alunos devem ser
capazes de responder às questões do presente projecto sem necessitarem de recorrer
ao interpretador Scheme.
ˆ A não comparência de um aluno avaliado segundo o perfil P1 ou segundo o perfil P2
à prova de avaliação experimental traduz-se na atribuição de uma classificação de
0 (zero) valores nessa prova.
4

Documentos relacionados

Fundamentos da Programaç˜ao de Computadores

Fundamentos da Programaç˜ao de Computadores ˆ A resolução do Projecto pode ser efectuada individualmente ou em grupo. No caso de resolução por grupo, os grupos de trabalho devem ser compostos por dois elementos. Adicionalmente, estabelec...

Leia mais