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.