Licenciatura em Engenharia Informática e de Computadores Fundamentos de Programação Trabalho para casa 21 de Setembro de 2009 Este trabalho corresponde à instalação, no seu computador, do interpretador da linguagem de programação utilizada na disciplina e na realização de pequenos exercícios relativamente à utilização dessa linguagem. O enunciado começa com as instruções para a instalação. 1 Instalação do Scheme A versão do Scheme utilizada na disciplina (DrScheme) é um programa de domínio público, produzido pela “Rice University" e que pode ser obtida em: http://download.plt-scheme.org/drscheme/ A última versão disponível do Scheme é a 4.2.1, no entanto, não será esta a versão usada na disciplina. A versão oficial utilizada nesta disciplina – instalada nos laboratórios – e que todos os alunos deverão usar é a versão 372. Existem alterações significativas na versão 4, pelo que os programas escritos na versão 4 poderão não funcionar na versão 372. O projecto da disciplina será avaliado única e exclusivamente sobre a versão 372. Para instalar o Scheme, a partir da página correspondente ao endereço mencionado (Figura 1) deverá ser seleccionada a opção Other Versions, e na janela seguinte (Figura 2) deverá ser escolhida a versão 372. Após a selecção da versão, carregue no botão Go. Após a escolha da versão, deverá ser escolhido o sistema operativo a utilizar (Figura 3). Seleccione o sistema operativo do seu computador e carregue no botão Download. Figure 1: Janela de carregamento do DrScheme. Pág. 2 de 7 Figure 2: Escolha da versão a utilizar. Figure 3: Escolha do sistema operativo a utilizar. Pág. 3 de 7 Figure 4: Instruções de instalação e local de carregamento. Após esta escolha, será apresentada uma janela em que se mostram as instruções de instalação e o local de onde será feito o carregamento (Figura 4). Escolha um dos locais de carregamento, a Bélgica, por exemplo. O código do DrScheme será carregado no seu computador. Terminado o carregamento, execute as instruções que lhe foram apresentadas na janela da Figura 4 para instalar o DrScheme no seu computador (Installation instructions). 2 Configuração da linguagem Após a instalação, inicie o programa DrScheme. Deverá aparecer uma janela semelhante à apresentada na Figura 5. Antes de poder utilizar o Scheme deverá configurar o nível da linguagem. O primeiro passo a executar é a escolha do nível da linguagem a usar. Por esta razão, antes de iniciar qualquer interacção com o Scheme, o nível de linguagem deve ser escolhido. Nesta disciplina utilizamos o nível “Graphical (MrEd, includes MzScheme)". No topo do écran em que aparece a janela mostrada na Figura 5 aparece uma barra de menus, cujo aspecto depende do sistema operativo em utilização, e que se assemelha à da Figura 6. Para configurar a linguagem, utiliza-se a entrada Language na barra de menus, escolhendo-se a opção Choose Language.... Esta opção gera uma janela semelhante à apresentada na Figura 7, na qual se deve escolher a alternativa Graphical (MrEd, includes MzScheme). Após escolhida a linguagem, carregue no botão Run ( rior direito da janela do Scheme. ) que aparece no canto supe- Depois da escolha da linguagem apropriada1 , está em condições de começar a trabalhar com o Scheme. 1 O que apenas deverá ser feito uma vez, na primeira interacção com o Scheme após o seu carregamento, sendo esta informação registada de modo persistente pelo Scheme. Pág. 4 de 7 Figure 5: Janela do Scheme. Figure 6: Barra de menus e opção para a escolha do nível da linguagem. Pág. 5 de 7 Figure 7: Escolha da opção Graphical (MrEd, includes MzScheme). 3 A janela do Scheme A comunicação com o Scheme é feita utilizando a janela que se mostra na Figura 5: • Na parte inferior desta janela, chamada janela de interacção, comunicamos com o avaliador do Scheme. Nesta janela, encontramo-nos permanentemente no ciclo lê-avalia-escreve, no qual o Scheme lê formas, avalia-as e apresenta o resultado da avaliação. Escrevendo nesta janela, podemos, por exemplo, gerar a interacção apresentada na Figura 8. Nesta figura, é importante observar que uma forma pode ocupar mais do que uma linha, tal como acontece com a forma (+ (* 6 123) 987) caso em que o Scheme nos mostra a forma que está a ser introduzida recorrendo à impressão elegante. Um dos erros típicos de principiantes corresponde ao esquecimento de fechar algum parêntesis numa forma fornecida ao avaliador, o que gera uma interacção em que se carrega múltiplas vezes na tecla “return" e em que o Scheme não reage. É também importante notar que, sempre que se fecha um parêntesis, o Scheme indica qual o parêntesis a que este corresponde, realçando a forma correspondente (última linha da Figura 8 – a qual corresponde a uma forma ainda não terminada). A informação contida na janela de interacção pode ser guardada em ficheiros ou impressa, utilizando as entradas adequadas do menu File da barra de menus. • Na parte superior desta janela, chamada janela de definições, escrevemos os nossos programas. Nesta janela, o Scheme está activo, no sentido em que verifica o que estamos a escrever, indicando as fronteiras de cada forma e utilizando a impressão elegante, mas não avalia as formas que escrevemos. Pág. 6 de 7 Figure 8: Exemplo de interacção. A informação contida na janela de definições pode ser guardada em ficheiros, carregada de ficheiros ou impressa, utilizando as entradas adequadas do menu File da barra de menus. 4 Trabalho a realizar Neste primeiro trabalho de casa, deverá realizar o seguinte: 1. Instalar o Scheme no seu computador seguindo as instruções apresentadas nas secções 1 e 2. 2. Na janela de interacção executar as seguintes acções: (a) Avaliar a constante inteira correspondente ao seu número de aluno. (b) Avaliar a cadeia de caracteres correspondente ao seu nome completo. (c) Calcular a diferença entre 2009 e o seu ano de nascimento. (d) Calcular o perímetro de um círculo com diâmetro 12, utilizando 3.14 para valor de π. (e) Calcular a razão entre o perímetro de um quadrado com 12 de lado e o perímetro de um círculo com diâmetro 12. (f) Traduzir a expressão (5 + 41) ∗ 3/2 + 1 para notação prefixa e avaliar a forma correspondente. (g) Traduzir a expressão 1 + 3 ∗ 2/4 − 35 ∗ 6/(7 + 89) para notação prefixa e avaliar a forma correspondente. 3. Usando o procedimento primitivo remainder em Scheme, calcule o resto da divisão inteira do seu número de aluno por 7. O procedimento primitivo remainder recebe 2 argumentos x e n, e devolve o resto da divisão inteira de x por n. 4. O cálculo da alínea anterior vai devolver um número entre 0 e 6. De acordo com o número obtido, traduza para notação prefixa e avalie a expressão correspondente: 0: ((12 ∗ 5 + 2) + 7)/(5 − 3) 1: (12 ∗ 5 + 2 + 4/5 − 6)/2 Pág. 7 de 7 2: ((7 + 9 − 3 ∗ 5) ∗ 16 + 6)/8 3: (15 + 34 ∗ 10)/10 + 22 4: ((2 − 1) ∗ 88 − 2) + 6/3 5: (4 − 2 ∗ 5 ∗ (4 − 3) + 32) ∗ 2 6: 5 ∗ (3 + 5) − 19/(2 − 1) + 1 Nota: deverá avaliar apenas a expressão correspondente. Se avaliar mais de uma expressão será penalizado. 5. Imprimir o resultado da janela de interacção contendo o seu trabalho (usando uma fonte "monospace"). Identificar o seu trabalho, no canto superior direito, com o seu nome e número (a não identificação correcta do trabalho corresponde a uma penalização de 2 valores). Entregar o seu trabalho na secretaria do Departamento de Engenharia Informática no dia 6 de Outubro, dentro do horário normal de funcionamento e antes das 15:00. Para além disso deve gerar um pdf ou um ficheiro de texto com o resultado da janela de interacção e submeter esse ficheiro usando o sistema fénix até dentro do prazo indicado atrás". Boa sorte! A realização deste trabalho pode custar um bocadinho, mas vai ver que é giro.