Linguagens de Programação 2012.2 - Lista 1 Alexandre Rademaker August 20, 2012 Nos exercícios abaixo, toda a implementação deve ser feita em Python e Scheme. Espera-se assim dois arquivos como resposta para cada item. Os arquivos devem ser nomeados como “grupo-X-lista-Y-ex-Z.py” e “grupo-Xlista-Y-ex-Z.rkt” onde X é o número do grupo, Y a lista e Z o número da questão. 1. No console do DrRacket e Python, calcule a média final de um aluno, sabendo que a média dos trabalhos tem 30% de peso na média final e a média das provas tem 70% do peso e que o aluno obteve as seguintes notas. Use variáveis de memória para facilitar. Reporte os valores encontrados e os comandos executados em cada ambiente. • Trabalhos: 8.5, 6.7, 4.3. • Provas: 3.8 e 7.6 (O grupo 1 irá salvar as respostas nos arquivos grupo-1-lista-1-1.py e grupo-1-lista-1-1.rkt.) 2. No console do DrRacket e do Python. Comece com um investimento inicial de R$ 1000,00. Calcule o montante obtido em três meses de uma aplicação que rende 1,5% no primeiro mês, 2% no segundo e 2,5% no terceiro mês. Use variáveis de memória para facilitar. E se o investimento inicial fosse de R$ 2000,00? E se fosse de R$ 836,00? 3. No console do DrRacket e Python. Calcule o montante obtido em três meses de uma aplicação que rende 2% ao mês e que começou com um investimento inicial de R$ 1000,00. Use variáveis de memória para facilitar o seu trabalho. Mas também podemos usar a fórmula fechada para o cálculo do rendimento de uma aplicação de n meses com taxa i. Vide próximos exercícios. 1 4. Calcule no console do DrRacket a expressão abaixo e reporte os valores encontrados. Reporte também como seria no Python e as diferenças. √ 1 + 2 3 10 3+5 − sin(1) 2cos(2) (1) 5. Gere um número aleatório x no intervalo [a, b]. Defina você valores para as variáveis a e b. Tente descobrir como gerar números aleatórios no Python e em Scheme. 6. Um estudante de física obteve resultados inesperados usando o código abaixo para computar o valor da fórmula F = Gmr12m2 . Explique o problema e corrija o código Python e escreva o código Scheme. Desenhe a árvore sintática da expressão errada e da certa. F = G * mass1 * mass2 / r * r 7. Um indivíduo deseja fazer um empréstimo bancário no valor P hoje. Com uma taxa mensal de i. O empréstimo deverá ser pago em n parcelas mensais no valor de R. Seu problema é calcular R. Equacionando o valor presente P com o futuro (descontado) valor de n pagamentos mensais de R: P = R(1 + i)−1 + R(1 + i)−2 + . . . + R(1 + i)−n ou P =R n X (1 + i)−j j=1 Somando esta série geométrica e simplificando, temos: 1 − (1 + i)−n P =R i Como na realidade desejamos cálcular R: R=P i 1 − (1 + i)−n Usaremos as variáveis principal para guardar o valor de P . A variável intRate para guardar a taxa i. A variável n para guardar o número de parcelas n. Iremos guardar em payment o valor de R. Calcule R para um empréstimo de R$ 1500,00, com taxa de 1% em 10 pagamentos. 2 8. Um supermercado local precisa de um programa para calcular o montande de dinheiro em cada sacola de moeda. Crie um programa em Scheme e Python para calcular o montante em cada sacola dadas as quantidades de moedas de 1 centavo, 5 centavos, 10 centavos, 25 centavos e 1 real. 9. Entre com as definições abaixo, uma por uma, na janela “Definitions” do DrRacket e clique em “Execute”. Em seguida, identifique os problemas e corriga até não haver erros. (define (f 1) (+ x 10)) (define (g x) + x 10) (define h(x) (+ x 10)) 10. Repita o exercício anterior agora escrevendo o seguinte código gramaticamente válido em Scheme na janela “Definitions”. Clique em Execute em seguida. (define (somef x) (sin x x)) Na janela “Interactions”, entre com as seguintes expressões: (somef 10 20) (somef 10) Leia as mensagens de erro, interprete-as. 11. Usando as funções que desenvolvemos na aula de 20/ago para computar o lucro do dono do cinema para um dado preço de ingresso. Quando custa para exibir um filme com preços de ingressos de R$ 3,00, R$ 4,00 e R$ 5,00? Quando é a receita para cada caso? Qual o melhor entre estes 3 preços de ingresso para o dono do cinema? 3 12. O dono do cinema descobriu várias maneiras de melhorar sua rentabilidade. Depois de algumas melhorias, ele agora não tem um custo fixo mas cada espectador custa R$ 1,50. Modifique as funções usadas no exercício anterior para refletir esta nova realidade. 13. Escreva duas funções em Scheme e Python que calculem: (1) a área de um cilindro a partir do raio da base do cilíndro e da sua altura; (2) o volume do cilindo a partir das mesmas entradas. 14. Na janela “Interactions” de DrRacket, verifique o valor das seguintes expressões para: (1) x=4; (2) x=2 e (3) x=7/2. (> x 3) (and (> 4 x) (> x 3)) (= (* x x) x) 15. Escreva uma função em Python e Scheme que receba um número e retorne verdadeiro se ele estiver no intervalo da reta real que compreende a união de (1,3) com (9,11]. A função deve retornar falso caso contrário. Onde parênteses indicam intervalo aberto (não inclusivo) e conchetes intervalos fechados (inclusivos). 4