Licenciatura em Engenharia Informática e de Computadores
Fundamentos de Programação
Trabalho para casa
20 de Outubro de 2008
Pretende-se com este trabalho a realização de alguns procedimentos em Scheme, bem
como a sua avaliação utilizando o interpretador do Scheme. A cotação de cada pergunta
deste trabalho está indicada entre parênteses.
1 Trabalho a realizar
1. (10.0) Suponha que a operação de multiplicação não existia em Scheme e que pretende calcular o quadrado de um número natural.
Alguém lhe diz que o quadrado de um número natural pode ser calculado como
sendo a soma de todos os números ímpares inferiores ao dobro do número. Com
efeito:
n
1
2
3
4
5
6
...
1 + . . . + (2n − 1)
1=
1+3 =
1+3+5 =
1+3+5+7 =
1+3+5+7+9 =
1+3+5+7+9+11 =
...
n2
1
4
9
16
25
36
...
Escreva um procedimento em Scheme, chamado quadrado, que calcula o quadrado
de um número natural utilizando o método descrito. Note que o dobro de um
número também não pode ser calculado recorrendo à operação de multiplicação.
Escreva duas versões do procedimento quadrado:
(a) Um procedimento que dá origem a um processo recursivo linear.
(b) Um procedimento que dá origem a um processo iterativo linear.
Teste o seu procedimento calculando o quadrado do seu número de aluno.1
2. (5.0) Escreva um procedimento em Scheme, chamado triangulo-rect?, que recebe três números inteiros positivos e determina se estes correspondem aos comprimentos dos lados de um triângulo rectângulo.
O seu procedimento deverá satisfazer as seguintes condições:
• O procedimento devolve verdadeiro no caso dos valores recebidos corresponderem aos comprimentos dos lados de um triângulo rectângulo e falso em caso
contrário.
1
Se ainda não lhe foi atribuído um número pelo IST, utilize o número do seu bilhete de identidade.
Pág. 2 de 2
• O funcionamento do procedimento é independente da ordem pela qual os valores lhe são fornecidos.
• O procedimento verifica se os valores fornecidos correspondem a inteiros positivos, produzindo uma mensagem em caso de não corresponderem.
Note que num triângulo rectângulo, o quadrado de um dos lados é igual à soma
dos quadrados dos outros dois. Para calcular o quadrado, utilize um dos procedimentos que desenvolveu na pergunta anterior.
Apresente um número suficiente de exemplos que demonstrem que o seu procedimento funciona correctamente.
3. (5.0) A constante e é um dos números mais importantes em Matemática, a par com
os elementos neutros da adição (0) e da multiplicação (1), com a constante π e com
a unidade imaginária i.
O valor de e corresponde ao número real que é a soma da seguinte série infinita
e=
∞
!
1
1
1
1
1
= + + + + ...
n!
0! 1! 2! 3!
n=0
Escreva um procedimento em Scheme para calcular uma aproximação do número
e, utilizando a série apresentada. A condição de paragem deve ser determinada por
si e devidamente justificada.
2 Condições de realização e entrega
O trabalho deve ser realizado a título individual. Deverão ser entregues tanto um ficheiro
com as definições dos procedimentos como um ficheiro com o resultado da interacção.
Para que o trabalho seja classificado é imperativo que a interacção corresponda aos procedimentos apresentados como definições.
Imprimir o resultado das janelas de definições e de interacção contendo o seu trabalho
(usando uma fonte "monospace"). Agrafar os dois documentos. Identificar o seu trabalho, no canto superior direito da primeira página, com o seu nome e número (a não
identificação correcta do trabalho corresponde a uma penalização de 2 valores).
• Alunos da Alameda: Entregar o seu trabalho na reprografia do Departamento de
Engenharia Informática no dia 27 de Outubro, dentro do horário normal de funcionamento e antes das 15:00.
• Alunos do Tagus: Entregar o seu trabalho no secretariado do Departamento de Engenharia Informática no dia 27 de Outubro, dentro do horário normal de funcionamento e antes das 15:00.
Download

2º Trabalho de programação